Skip to content
Snippets Groups Projects
Verified Commit b34876b1 authored by iliya.saroukha's avatar iliya.saroukha :first_quarter_moon:
Browse files

fix: typos

parent d29bb3a9
No related branches found
No related tags found
No related merge requests found
......@@ -256,7 +256,7 @@ def compute_vitter_params(m: int) -> tuple[int, int]:
Étant donné que la longueur de notre alphabet est de 36, la valeur de $e$ est
égale à 5 et celle de $r$ est de 4. Sur la base de ses valeurs nous pouvons
donc calculer les codes fixes des divers caractères sur la base des règle
donc calculer les codes fixes des divers caractères sur la base des règles
suivantes :
- Si $0 \leq k \leq 2r$, alors le symbole $S_{k}$ est encodé par la
......@@ -335,18 +335,18 @@ def encode(input: str) -> str:
```
Nous allons donc commencer par insérer dans l'arbre le nouveau caractère
rencontré via la fonction `insert_char`. Suite à cela nous ferons une recherche
dans l'arbre pour calculer la partie NYT (_Not Yet Transmitted_) qui servira
de préfixe au code fixe du caractère. Si ce caractère n'a pas encore été
rencontré, il sera aussi inséré dans une structure de données de type `set` qui
permet de stocker des données sans doublons. Ceci est critique du fait que
rencontré via la fonction `insert_char`. Suite à cela, nous ferons une
recherche dans l'arbre pour calculer la partie NYT (_Not Yet Transmitted_) qui
servira de préfixe au code fixe du caractère. Si ce caractère n'a pas encore
été rencontré, il sera aussi inséré dans une structure de données de type `set`
qui permet de stocker des données sans doublons. Ceci est critique du fait que
le code NYT établi à l'insertion initiale du caractère a possiblement changé
suite aux divers _swaps_ qui ont possiblement eu lieu. Ces _swaps_ se produisent
lorsque le poids du sous-arbre gauche est supérieur à celui de droite. Par
conséquent, si nous allons insérer à nouveau un caractère connu au préalable
(i.e. présent dans le `set`), nous allons recalculer le préfixe NYT du caractère
via la fonction `compute_prefix` en parcourant l'arbre jusqu'à retrouvé ce
caractère.
suite aux divers _swaps_ et autres insertions qui ont eu lieu. Ces _swaps_ se
produisent lorsque le poids du sous-arbre gauche est supérieur à celui du
sous-arbre de droite. Par conséquent, si nous allons insérer à nouveau un
caractère connu au préalable (i.e. présent dans le `set`), nous allons
recalculer le préfixe NYT du caractère via la fonction `compute_prefix` en
parcourant l'arbre jusqu'à retrouver ce caractère.
### Résultat de l'encodage
......@@ -425,23 +425,24 @@ mésure jusqu'à retrouver la feuille NYT. À ce moment, il est nécessaire de
lire les $e$ bits suivants. Si la valeur de ceux-ci en base 10 est inférieur
à $r$, alors pour obtenir le symbole correspondant il est nécessaire de lire
les $(e + 1)$, de les convertir en base 10 et d'y ajouter 1. La valeur numérique
résultante sera la position dans du symbole dans l'alphabet. Si la valeur de
résultante sera la position dans symbole dans l'alphabet. Si la valeur de
$e$ est inférieur ou égale à $r$, il faut convertir ces bits en base 10 et d'y
ajouter la valeur $r + 1$.
Plus concrètement, nous allons en premier lieu nous débarasser des éventuels
Plus concrètement, nous allons en premier lieu nous débarrasser des éventuels
espaces dans la chaîne de caractères codées, puis nous allons lire cette chaîne
jusqu'à l'épuisement des bits dans celles-ci. À l'intérieur de la boucle, nous
jusqu'à l'épuisement des bits dans celle-ci. À l'intérieur de la boucle, nous
commencerons par parcourir l'arbre jusqu'à la feuille NYT. Si la valeur du bit
actuel est 0, nous allons bifurquer à gauche, sinon à droite. Ayant recontré
actuel est 0, nous allons bifurquer à gauche, sinon à droite. Ayant rencontré
la feuille NYT, nous appliquerons l'algorithme énoncé précédemment pour
déterminer le caractère rencontré. Celui-ci, sera rajouté à la chaîne de
caractère finale et sera aussi insérer dans un `set` afin d'indiquer que ce
caractère fut recontré. Ceci est important du fait que lorsque ce caractère
caractère fut recontré. Ceci est important du au fait que lorsque ce caractère
sera à nouveau rencontré, le parcours de l'arbre ne se fera plus jusqu'à une
feuille NYT et par conséquent le code NYT ne sera plus présent dans la chaîne
décodée. Ce cas est présenté par le branchement conditionnel à la ligne 43.
L'implémentation de cette fonction se trouve ci-dessous :
décodée à la suite de ce caractère. Ce cas est présenté par le branchement
conditionnel à la ligne 43. L'implémentation de cette fonction se trouve
ci-dessous :
```python
def decode(encoded: str) -> (str, str):
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment