Skip to content
Snippets Groups Projects
Commit 71fcdfde authored by orestis.malaspin's avatar orestis.malaspin
Browse files

Merge branch 'pk' into 'master'

coquilles cours 21

See merge request algorithmique/cours!8
parents 723dc0a5 ae7d31d3
No related branches found
No related tags found
No related merge requests found
...@@ -102,6 +102,8 @@ arbre symétrie(arbre) ...@@ -102,6 +102,8 @@ arbre symétrie(arbre)
## Écrire le pseudo-code (5min, matrix) ## Écrire le pseudo-code (5min, matrix)
. . .
```C ```C
rien compression_sans_pertes(arbre) rien compression_sans_pertes(arbre)
si !est_feuille(arbre) si !est_feuille(arbre)
...@@ -241,7 +243,7 @@ bool last_value(node *qt, int *val) { ...@@ -241,7 +243,7 @@ bool last_value(node *qt, int *val) {
. . . . . .
* On stocke la moyenne, et le carré de la moyenne. * On stocke la moyenne, et la moyenne des carrés.
```C ```C
struct noeud struct noeud
...@@ -281,7 +283,7 @@ rien compression_avec_pertes(arbre, theta) ...@@ -281,7 +283,7 @@ rien compression_avec_pertes(arbre, theta)
pour i de 0 à 3 pour i de 0 à 3
compression_avec_pertes(arbre.enfant[i]) compression_avec_pertes(arbre.enfant[i])
si derniere_branche(arbre) si derniere_branche(arbre)
si racine(arbre.moyenne*arbre.moyenne - arbre.moyenne_carre) < theta si racine(arbre.moyenne_carre - arbre.moyenne^2) < theta
detruire_enfants(arbre) detruire_enfants(arbre)
``` ```
...@@ -345,7 +347,7 @@ struct étoile ...@@ -345,7 +347,7 @@ struct étoile
```C ```C
rien iteration_temporelle(étoiles, dt) rien iteration_temporelle(étoiles, dt)
pour étoile_une dans étoiles pour étoile_une dans étoiles
étoile_une.a = 0 étoile_une.f = 0
pour étoile_deux dans étoiles pour étoile_deux dans étoiles
si (étoile_un != étoile_deux) si (étoile_un != étoile_deux)
étoile_une.f += étoile_une.f +=
...@@ -368,6 +370,8 @@ rien iteration_temporelle(étoiles, dt) ...@@ -368,6 +370,8 @@ rien iteration_temporelle(étoiles, dt)
## En temps CPU pour **une itération** ## En temps CPU pour **une itération**
\footnotesize
* Si temps pour $N=1$ on calcule en $1\mu s$: * Si temps pour $N=1$ on calcule en $1\mu s$:
+--------+-------+-------+-----------+ +--------+-------+-------+-----------+
...@@ -478,7 +482,7 @@ rien iteration_temporelle(étoiles, dt) ...@@ -478,7 +482,7 @@ rien iteration_temporelle(étoiles, dt)
* La numérotation est: * La numérotation est:
* 0: ID * 0: ID
* 1: SD * 1: SD
* 2: ID * 2: IG
* 3: SG * 3: SG
# Exemple d'insertion # Exemple d'insertion
...@@ -622,7 +626,7 @@ rien iteration_temporelle(étoiles, dt) ...@@ -622,7 +626,7 @@ rien iteration_temporelle(étoiles, dt)
\begin{align} \begin{align}
m&=m_2+m_3,\\ m&=m_2+m_3,\\
\vec x &= \frac{m_2\vec x_2+m_3+\vec x_3}{m}. \vec x &= \frac{m_2\vec x_2+m_3\vec x_3}{m}.
\end{align} \end{align}
## Chaque feuille contient **une étoile** ## Chaque feuille contient **une étoile**
...@@ -645,7 +649,7 @@ m&=m_2+m_3,\\ ...@@ -645,7 +649,7 @@ m&=m_2+m_3,\\
* Si le noeud `n` * Si le noeud `n`
* ne contient pas de corps, on y dépose `c`, * ne contient pas de corps, on y dépose `c`,
* est interne, on met à jour masse et centre de masse. `c` est inséré récursivement dans le bon quadrant. * est interne, on met à jour masse et centre de masse. `c` est inséré récursivement dans le bon quadrant.
* est est externe, on subdivise `n`, on met à jour la masse et centre de masse, on insère récursivement les deux noeuds dans les quadrants appropriés. * est externe, on subdivise `n`, on met à jour la masse et centre de masse, on insère récursivement les deux noeuds dans les quadrants appropriés.
## Remarque ## Remarque
...@@ -680,16 +684,16 @@ struct node ...@@ -680,16 +684,16 @@ struct node
rien insertion_etoile(arbre, e) rien insertion_etoile(arbre, e)
si (!est_vide(arbre) && dans_le_quadrant(arbre.q, e.x)) { si (!est_vide(arbre) && dans_le_quadrant(arbre.q, e.x)) {
si (est_feuille(arbre)) si (est_feuille(arbre))
si (est_vide(arbre)) si (!contient_etoile(arbre))
arbre.e = e arbre.e = e
sinon sinon
// on crée enfants et arbre.sup_etoile est initialisée // on crée enfants et arbre.sup_etoile est initialisée
subdivision_arbre(arbre, e) subdivision_arbre(arbre, e)
pour enfant dans arbre.enfants pour enfant dans arbre.enfants
insertion_etoile(enfant, arbre.e) insertion_etoile(enfant, arbre.e)
pour enfant dans arbre.enfants pour enfant dans arbre.enfants
insertion_etoile(enfant, e) insertion_etoile(enfant, e)
destruction(etoile) destruction(arbre.e)
sinon sinon
maj_masse_cdm(arbre.sup_etoile, e) maj_masse_cdm(arbre.sup_etoile, e)
pour enfant dans arbre.enfants pour enfant dans arbre.enfants
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment