Skip to content
Snippets Groups Projects
Commit 6c48041d authored by paul.albuquer's avatar paul.albuquer
Browse files

Edit cours_22.md

parent 1f0bc20a
No related branches found
No related tags found
No related merge requests found
Pipeline #39540 passed
...@@ -3,7 +3,7 @@ title: "Arbres quaternaires" ...@@ -3,7 +3,7 @@ title: "Arbres quaternaires"
date: "2024-04-30" date: "2024-04-30"
--- ---
# Rappel sur ls arbres quaternaires # Rappel sur les arbres quaternaires
## Définition? ## Définition?
...@@ -65,7 +65,7 @@ date: "2024-04-30" ...@@ -65,7 +65,7 @@ date: "2024-04-30"
```C ```C
matrice symétrie(matrice) matrice symétrie(matrice)
pour i de 0 à nb_colonnes(matrice) / 2 pour i de 0 à nb_colonnes(matrice)/2
pour j de 0 à nb_lignes(matrice) pour j de 0 à nb_lignes(matrice)
échanger(matrice[i][j], matrice[nb_colonnes(matrice)-1-i][j]) échanger(matrice[i][j], matrice[nb_colonnes(matrice)-1-i][j])
retourne matrice retourne matrice
...@@ -152,7 +152,7 @@ rien rotation_gauche(arbre) ...@@ -152,7 +152,7 @@ rien rotation_gauche(arbre)
IG=2 | ID=3 IG=2 | ID=3 IG=2 | ID=3 IG=2 | ID=3
``` ```
* Écrire le vrai (5min, matrix) * Écrire le vrai code (5min, matrix)
. . . . . .
...@@ -164,7 +164,7 @@ void rotate(node *qt) { ...@@ -164,7 +164,7 @@ void rotate(node *qt) {
qt->child[0] = qt->child[1]; qt->child[0] = qt->child[1];
qt->child[1] = qt->child[3]; qt->child[1] = qt->child[3];
qt->child[3] = tmp; qt->child[3] = tmp;
for (int i=0;i < 4; i++) { for (int i=0; i<CHILDREN; i++) {
rotate(qt->child[i]); rotate(qt->child[i]);
} }
} }
...@@ -204,19 +204,19 @@ void rotate(node *qt) { ...@@ -204,19 +204,19 @@ void rotate(node *qt) {
# Compression sans perte (3/5) # Compression sans perte (3/5)
* Si un nœud a tous ses enfants égaux: * Si un nœud a tous ses enfants égaux:
* Donner la valeur au nœud, * Stocker cette valeur dans ce nœud,
* Supprimer les enfants. * Supprimer ses enfants.
* Remonter jusqu'à la racine. * Jusqu'à remonter à la racine.
## Écrire le pseudo-code (5min, matrix) ## Écrire le pseudo-code (5min, matrix)
. . . . . .
```C ```C
rien compression_sans_pertes(arbre) rien compression_sans_perte(arbre)
si !est_feuille(arbre) si !est_feuille(arbre)
pour i de 0 à 3 pour i de 0 à 3
compression_sans_pertes(arbre.enfant[i]) compression_sans_perte(arbre.enfant[i])
si derniere_branche(arbre) si derniere_branche(arbre)
valeur, toutes_égales = valeur_enfants(arbre) valeur, toutes_égales = valeur_enfants(arbre)
si toutes_egales si toutes_egales
...@@ -235,14 +235,14 @@ rien compression_sans_pertes(arbre) ...@@ -235,14 +235,14 @@ rien compression_sans_pertes(arbre)
```C ```C
void lossless_compression(node *qt) { void lossless_compression(node *qt) {
if (!is_leaf(qt)) { if (!is_leaf(qt)) {
for (int i = 0; i < CHILDREN; i++) { for (int i=0; i<CHILDREN; i++) {
lossless_compression(qt->child[i]); lossless_compression(qt->child[i]);
} }
if (is_last_branch(qt)) { if (is_last_branch(qt)) {
int val = -1; int val = -1;
if (last_value(qt, &val)) { if (last_value(qt, &val)) {
qt->info = val; qt->info = val;
for (int i = 0; i < 4; ++i) { for (int i=0; i<CHILDREN; ++i) {
free(qt->child[i]); free(qt->child[i]);
qt->child[i] = NULL; qt->child[i] = NULL;
} }
...@@ -258,7 +258,7 @@ void lossless_compression(node *qt) { ...@@ -258,7 +258,7 @@ void lossless_compression(node *qt) {
```C ```C
bool is_last_branch(node *qt) { bool is_last_branch(node *qt) {
for (int i = 0; i < 4; ++i) { for (int i = 0; i < CHILDREN; ++i) {
if (!is_leaf(qt)) { if (!is_leaf(qt)) {
return false; return false;
} }
...@@ -267,7 +267,7 @@ bool is_last_branch(node *qt) { ...@@ -267,7 +267,7 @@ bool is_last_branch(node *qt) {
} }
bool last_value(node *qt, int *val) { bool last_value(node *qt, int *val) {
int info = qt->child[0]; int info = qt->child[0];
for (int i = 1; i < 4; ++i) { for (int i = 1; i < CHILDREN; ++i) {
if (info != qt->child[i]) { if (info != qt->child[i]) {
return false; return false;
} }
...@@ -325,7 +325,7 @@ bool last_value(node *qt, int *val) { ...@@ -325,7 +325,7 @@ bool last_value(node *qt, int *val) {
. . . . . .
* Si $\sigma<\theta$, $\theta$ est la **tolérance**: * Si $\sigma<\theta$, $\theta$ est la **tolérance**:
* Remplacer la valeur du pixel par la moyenne des enfants. * Remplacer la valeur du pixel par la moyenne des enfants.
* Remonter les valeurs dans l'arbre. * Remonter les valeurs dans l'arbre.
...@@ -498,7 +498,7 @@ rien iteration_temporelle(étoiles, dt) ...@@ -498,7 +498,7 @@ rien iteration_temporelle(étoiles, dt)
| 10^11 | 10^22 | 1e+16 | ~300M ans | | 10^11 | 10^22 | 1e+16 | ~300M ans |
+--------+-------+-------+-----------+ +--------+-------+-------+-----------+
* Typiquement il y a des milliers-millions d'itérations. * Typiquement, il y a des milliers-millions d'itérations.
* Il y a $10^{11}$ étoiles dans la galaxie. * Il y a $10^{11}$ étoiles dans la galaxie.
* Houston we have a problem. * Houston we have a problem.
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment