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.