LE CODAGE ET DECODAGE ARITHMETIQUE 1) CODAGE La

publicité
LE CODAGE ET DECODAGE ARITHMETIQUE
1) CODAGE
La technique du codage arithmétique engendre en résultat, un nombre réel
compris entre 0 et 1.
- ALGORITHME
limite_basse = 0
limite_haute = 1
tant_que ( (N=saisicar) != EOF )
{ intervalle = limite_haute - limite_basse
limite_haute = limite_basse + (intevalle*max(N))
limite_basse = limite_basse + (intevalle*min(N))
}
ecrire(limite_basse)
équation1
équation2
équation3
- EXEMPLE : Soit la chaîne "!TESTDATA!" à compresser. On commence
par établir le tableau des occurrences suivant (le tableau donnant la
probabilité d’apparition de chaque caractère).
lettre
T
E
S
D
A
!
probabilité
3/10
1/10
1/10
1/10
2/10
2/10
intervalle
(min..max)
0.0
0.3
0.3
0.4
0.4
0.5
0.5
0.6
0.6
0.8
0.8
1.0
Tableau1
En suivant l’algorithme décrit ci-dessus et en calculant à chaque fois les
nouvelles valeurs de "intervalle" (en utilisant équation1), "limite_basse"
(en utilisant équation3) et "limite_haute" (en utilisant équation2), nous
dressons le tableau des résultats suivant :
chaîne
intervalle
!
T
1.0
0.2
limite_basse
0.0
0.8
0.8
limite_haute
1.0
1.0
0.86
E
S
T
D
A
T
A
!
0.06
0.006
0.0006
0.00018
0.000018
0.0000036
0.00000108
0.000000216
0.818
0.8202
0.8204
0.82044
0.82049
0.8205008
0.820501448
0.82050146208
0.824
0.821
0.82058
0.82056
0.82050508
0.820505044
0.8205050188
0.82050501664
Tableau2
Le résultat du codage arithmétique de la chaîne "!TESTDATA!" est le réel se
trouvant dans la dernière ligne du Tableau2 et illustrant la dernière valeur de
"limite_basse" ; c'est-à-dire le réel : 0.82050146208
2) DECODAGE
Cette partie devra être faite par chacun de vous et retournée sous
forme d’un compte rendu. Cette évaluation sera prise en compte dans
la note finale de l’examen de ce module EP35.
QUESTION : Donner l’algorithme ainsi que le détail de calcul (sous forme
d’un tableau) qui permet de retrouver le résultat du décodage du réel :
0.82050146208, retrouvé précédemment.
Téléchargement