Huffman gruffalo diff

This commit is contained in:
Florent Madelaine 2023-04-03 11:59:33 +02:00
parent 2370d9f3fe
commit 01ea244f4b
8 changed files with 2204 additions and 0 deletions

View File

@ -0,0 +1,26 @@
\relax
\providecommand\hyper@newdestlabel[2]{}
\catcode `:\active
\catcode `;\active
\catcode `!\active
\catcode `?\active
\providecommand\HyperFirstAtBeginDocument{\AtBeginDocument}
\HyperFirstAtBeginDocument{\ifx\hyper@anchor\@undefined
\global\let\oldcontentsline\contentsline
\gdef\contentsline#1#2#3#4{\oldcontentsline{#1}{#2}{#3}}
\global\let\oldnewlabel\newlabel
\gdef\newlabel#1#2{\newlabelxx{#1}#2}
\gdef\newlabelxx#1#2#3#4#5#6{\oldnewlabel{#1}{{#2}{#3}}}
\AtEndDocument{\ifx\hyper@anchor\@undefined
\let\contentsline\oldcontentsline
\let\newlabel\oldnewlabel
\fi}
\fi}
\global\let\hyper@last\relax
\gdef\HyperFirstAtBeginDocument#1{#1}
\providecommand\HyField@AuxAddToFields[1]{}
\providecommand\HyField@AuxAddToCoFields[2]{}
\babel@aux{french}{}
\@writefile{toc}{\contentsline {paragraph}{\IeC {\'e}tape 1 (au tableau)}{1}{Doc-Start}\protected@file@percent }
\@writefile{toc}{\contentsline {paragraph}{\IeC {\'e}tape 2 (au tableau)}{1}{Doc-Start}\protected@file@percent }
\@writefile{toc}{\contentsline {paragraph}{\IeC {\'e}tape 3 : compression}{1}{Doc-Start}\protected@file@percent }

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,11 @@
Ceci est un fichier texte pour tester la commande diff.
Vous pouvez consulter le manuel de la commande diff en écrivant.
man diff
Ici j'ajoute une ligne qui sera absente du fichier file2.txt
Pour faire la différence entre deux fichiers on peut faire :
diff --color file1.txt file2.txt

View File

@ -0,0 +1,24 @@
Ceci est un fichier texte pour tester la commande diff.
Vous pouvez consulter le manuel de la commande diff en écrivant.
man diff
Je peux écrire le résultat (la page de manuel de diff) en écrivant
man diff >> file2.txt
Comme c'est un peu long, à la place j'ai utilisé
man diff | head >> file2.txt
GNU(1) User Commands GNU(1)
NAME
GNU diff - compare files line by line
SYNOPSIS
diff [OPTION]... FILES
DESCRIPTION
Compare FILES line by line.

View File

@ -0,0 +1,168 @@
A mouse took a stroll through the deep dark wood. A fox saw
the mouse and the mouse looked good. “Where are you going
to, little brown mouse? Come and have lunch in my
underground house.”
étape 1 au tableau on compte la fréquence des lettres.
Le moins fréquent est à traiter en premier.
étape 2 au tableau on construit l'arbre de Huffman.
étape 3 : compression.
On note les labels de la racine vers la feuille qui est le code de chaque lettre.
A devient : 0100
(j'écris _ pour l'espace)
_ devient : 111
m devient : 10 101
o devient : 100
u devient : 0 111
s devient : 10 111
e devient : 001
_ devient : 111
t devient : 000 1
o devient : 100
o devient : 100
k devient : 101 001
_ devient : 111
a devient : ????
_ devient : 111
%:-+-+-+- Engendré par : http://math.et.info.free.fr/TikZ/Arbre/
\begin{center}
% Racine à Gauche, développement vers la droite
\begin{tikzpicture}[xscale=1,yscale=1]
% Styles (MODIFIABLES)
\tikzstyle{fleche}=[->,>=latex,thick]
\tikzstyle{noeud}=[fill=yellow,circle,draw]
\tikzstyle{feuille}=[fill=yellow,circle,draw]
\tikzstyle{etiquette}=[midway,fill=white,draw]
% Dimensions (MODIFIABLES)
\def\DistanceInterNiveaux{3}
\def\DistanceInterFeuilles{2}
% Dimensions calculées (NON MODIFIABLES)
\def\NiveauA{(0)*\DistanceInterNiveaux}
\def\NiveauB{(1.875)*\DistanceInterNiveaux}
\def\NiveauC{(3.625)*\DistanceInterNiveaux}
\def\NiveauD{(5.25)*\DistanceInterNiveaux}
\def\NiveauE{(6.75)*\DistanceInterNiveaux}
\def\NiveauF{(8.125)*\DistanceInterNiveaux}
\def\NiveauG{(9.375)*\DistanceInterNiveaux}
\def\NiveauH{(10.5)*\DistanceInterNiveaux}
\def\NiveauI{(11.5)*\DistanceInterNiveaux}
\def\InterFeuilles{(-1)*\DistanceInterFeuilles}
% Noeuds (MODIFIABLES : Styles et Coefficients d'InterFeuilles)
\node[noeud] (R) at ({\NiveauA},{(13.5)*\InterFeuilles}) {$Tous$};
\node[noeud] (Ra) at ({\NiveauB},{(3.5)*\InterFeuilles}) {$$};
\node[noeud] (Raa) at ({\NiveauC},{(1)*\InterFeuilles}) {$$};
\node[noeud] (Raaa) at ({\NiveauD},{(0.5)*\InterFeuilles}) {$$};
\node[feuille] (Raaaa) at ({\NiveauE},{(0)*\InterFeuilles}) {$H$};
\node[feuille] (Raaab) at ({\NiveauE},{(1)*\InterFeuilles}) {$T$};
\node[feuille] (Raab) at ({\NiveauD},{(2)*\InterFeuilles}) {$E$};
\node[noeud] (Rab) at ({\NiveauC},{(5)*\InterFeuilles}) {$$};
\node[noeud] (Raba) at ({\NiveauD},{(4)*\InterFeuilles}) {$$};
\node[feuille] (Rabaa) at ({\NiveauE},{(3)*\InterFeuilles}) {$A$};
\node[noeud] (Rabab) at ({\NiveauE},{(4.5)*\InterFeuilles}) {$$};
\node[feuille] (Rababa) at ({\NiveauF},{(4)*\InterFeuilles}) {$W$};
\node[feuille] (Rababb) at ({\NiveauF},{(5)*\InterFeuilles}) {$G$};
\node[noeud] (Rabb) at ({\NiveauD},{(6.5)*\InterFeuilles}) {$$};
\node[feuille] (Rabba) at ({\NiveauE},{(6)*\InterFeuilles}) {$D$};
\node[feuille] (Rabbb) at ({\NiveauE},{(7)*\InterFeuilles}) {$U$};
\node[noeud] (Rb) at ({\NiveauB},{(17.5)*\InterFeuilles}) {$$};
\node[noeud] (Rba) at ({\NiveauC},{(10.5)*\InterFeuilles}) {$$};
\node[feuille] (Rbaa) at ({\NiveauD},{(8)*\InterFeuilles}) {$O$};
\node[noeud] (Rbab) at ({\NiveauD},{(11)*\InterFeuilles}) {$$};
\node[noeud] (Rbaba) at ({\NiveauE},{(10)*\InterFeuilles}) {$$};
\node[noeud] (Rbabaa) at ({\NiveauF},{(9.5)*\InterFeuilles}) {$$};
\node[feuille] (Rbabaaa) at ({\NiveauG},{(9)*\InterFeuilles}) {$.$};
\node[feuille] (Rbabaab) at ({\NiveauG},{(10)*\InterFeuilles}) {$K$};
\node[feuille] (Rbabab) at ({\NiveauF},{(11)*\InterFeuilles}) {$M$};
\node[noeud] (Rbabb) at ({\NiveauE},{(12.5)*\InterFeuilles}) {$$};
\node[feuille] (Rbabba) at ({\NiveauF},{(12)*\InterFeuilles}) {$L$};
\node[feuille] (Rbabbb) at ({\NiveauF},{(13)*\InterFeuilles}) {$S$};
\node[noeud] (Rbb) at ({\NiveauC},{(20.5)*\InterFeuilles}) {$$};
\node[noeud] (Rbba) at ({\NiveauD},{(20)*\InterFeuilles}) {$$};
\node[noeud] (Rbbaa) at ({\NiveauE},{(16.5)*\InterFeuilles}) {$$};
\node[noeud] (Rbbaaa) at ({\NiveauF},{(16)*\InterFeuilles}) {$$};
\node[noeud] (Rbbaaaa) at ({\NiveauG},{(14.5)*\InterFeuilles}) {$$};
\node[feuille] (Rbbaaaaa) at ({\NiveauH},{(14)*\InterFeuilles}) {$Y$};
\node[feuille] (Rbbaaaab) at ({\NiveauH},{(15)*\InterFeuilles}) {$"$};
\node[noeud] (Rbbaaab) at ({\NiveauG},{(17)*\InterFeuilles}) {$Nœud36$};
\node[noeud] (Rbbaaaba) at ({\NiveauH},{(16.5)*\InterFeuilles}) {$$};
\node[feuille] (Rbbaaabaa) at ({\NiveauI},{(16)*\InterFeuilles}) {$F$};
\node[feuille] (Rbbaaabab) at ({\NiveauI},{(17)*\InterFeuilles}) {$X$};
\node[feuille] (Rbbaaabb) at ({\NiveauH},{(18)*\InterFeuilles}) {$B$};
\node[feuille] (Rbbaab) at ({\NiveauF},{(19)*\InterFeuilles}) {$N$};
\node[noeud] (Rbbab) at ({\NiveauE},{(23)*\InterFeuilles}) {$$};
\node[feuille] (Rbbaba) at ({\NiveauF},{(20)*\InterFeuilles}) {$R$};
\node[noeud] (Rbbabb) at ({\NiveauF},{(23.5)*\InterFeuilles}) {$$};
\node[noeud] (Rbbabba) at ({\NiveauG},{(22.5)*\InterFeuilles}) {$$};
\node[noeud] (Rbbabbaa) at ({\NiveauH},{(21.5)*\InterFeuilles}) {$$};
\node[feuille] (Rbbabbaaa) at ({\NiveauI},{(21)*\InterFeuilles}) {$P$};
\node[feuille] (Rbbabbaab) at ({\NiveauI},{(22)*\InterFeuilles}) {$V$};
\node[noeud] (Rbbabbab) at ({\NiveauH},{(23.5)*\InterFeuilles}) {$$};
\node[feuille] (Rbbabbaba) at ({\NiveauI},{(23)*\InterFeuilles}) {$?$};
\node[feuille] (Rbbabbabb) at ({\NiveauI},{(24)*\InterFeuilles}) {$,$};
\node[noeud] (Rbbabbb) at ({\NiveauG},{(25.5)*\InterFeuilles}) {$$};
\node[feuille] (Rbbabbba) at ({\NiveauH},{(25)*\InterFeuilles}) {$C$};
\node[feuille] (Rbbabbbb) at ({\NiveauH},{(26)*\InterFeuilles}) {$I$};
\node[feuille] (Rbbb) at ({\NiveauD},{(27)*\InterFeuilles}) {$espace$};
% Arcs (MODIFIABLES : Styles)
\draw[fleche] (R)--(Ra) node[etiquette] {$0$};
\draw[fleche] (Ra)--(Raa) node[etiquette] {$0$};
\draw[fleche] (Raa)--(Raaa) node[etiquette] {$0$};
\draw[fleche] (Raaa)--(Raaaa) node[etiquette] {$0$};
\draw[fleche] (Raaa)--(Raaab) node[etiquette] {$1$};
\draw[fleche] (Raa)--(Raab) node[etiquette] {$1$};
\draw[fleche] (Ra)--(Rab) node[etiquette] {$1$};
\draw[fleche] (Rab)--(Raba) node[etiquette] {$0$};
\draw[fleche] (Raba)--(Rabaa) node[etiquette] {$0$};
\draw[fleche] (Raba)--(Rabab) node[etiquette] {$1$};
\draw[fleche] (Rabab)--(Rababa) node[etiquette] {$0$};
\draw[fleche] (Rabab)--(Rababb) node[etiquette] {$A$};
\draw[fleche] (Rab)--(Rabb) node[etiquette] {$1$};
\draw[fleche] (Rabb)--(Rabba) node[etiquette] {$0$};
\draw[fleche] (Rabb)--(Rabbb) node[etiquette] {$1$};
\draw[fleche] (R)--(Rb) node[etiquette] {$1$};
\draw[fleche] (Rb)--(Rba) node[etiquette] {$0$};
\draw[fleche] (Rba)--(Rbaa) node[etiquette] {$0$};
\draw[fleche] (Rba)--(Rbab) node[etiquette] {$1$};
\draw[fleche] (Rbab)--(Rbaba) node[etiquette] {$0$};
\draw[fleche] (Rbaba)--(Rbabaa) node[etiquette] {$0$};
\draw[fleche] (Rbabaa)--(Rbabaaa) node[etiquette] {$0$};
\draw[fleche] (Rbabaa)--(Rbabaab) node[etiquette] {$1$};
\draw[fleche] (Rbaba)--(Rbabab) node[etiquette] {$1$};
\draw[fleche] (Rbab)--(Rbabb) node[etiquette] {$1$};
\draw[fleche] (Rbabb)--(Rbabba) node[etiquette] {$0$};
\draw[fleche] (Rbabb)--(Rbabbb) node[etiquette] {$1$};
\draw[fleche] (Rb)--(Rbb) node[etiquette] {$1$};
\draw[fleche] (Rbb)--(Rbba) node[etiquette] {$0$};
\draw[fleche] (Rbba)--(Rbbaa) node[etiquette] {$0$};
\draw[fleche] (Rbbaa)--(Rbbaaa) node[etiquette] {$0$};
\draw[fleche] (Rbbaaa)--(Rbbaaaa) node[etiquette] {$0$};
\draw[fleche] (Rbbaaaa)--(Rbbaaaaa) node[etiquette] {$0$};
\draw[fleche] (Rbbaaaa)--(Rbbaaaab) node[etiquette] {$1$};
\draw[fleche] (Rbbaaa)--(Rbbaaab) node[etiquette] {$1$};
\draw[fleche] (Rbbaaab)--(Rbbaaaba) node[etiquette] {$0$};
\draw[fleche] (Rbbaaaba)--(Rbbaaabaa) node[etiquette] {$0$};
\draw[fleche] (Rbbaaaba)--(Rbbaaabab) node[etiquette] {$1$};
\draw[fleche] (Rbbaaab)--(Rbbaaabb) node[etiquette] {$1$};
\draw[fleche] (Rbbaa)--(Rbbaab) node[etiquette] {$1$};
\draw[fleche] (Rbba)--(Rbbab) node[etiquette] {$1$};
\draw[fleche] (Rbbab)--(Rbbaba) node[etiquette] {$0$};
\draw[fleche] (Rbbab)--(Rbbabb) node[etiquette] {$1$};
\draw[fleche] (Rbbabb)--(Rbbabba) node[etiquette] {$0$};
\draw[fleche] (Rbbabba)--(Rbbabbaa) node[etiquette] {$0$};
\draw[fleche] (Rbbabbaa)--(Rbbabbaaa) node[etiquette] {$0$};
\draw[fleche] (Rbbabbaa)--(Rbbabbaab) node[etiquette] {$1$};
\draw[fleche] (Rbbabba)--(Rbbabbab) node[etiquette] {$1$};
\draw[fleche] (Rbbabbab)--(Rbbabbaba) node[etiquette] {$0$};
\draw[fleche] (Rbbabbab)--(Rbbabbabb) node[etiquette] {$1$};
\draw[fleche] (Rbbabb)--(Rbbabbb) node[etiquette] {$1$};
\draw[fleche] (Rbbabbb)--(Rbbabbba) node[etiquette] {$0$};
\draw[fleche] (Rbbabbb)--(Rbbabbbb) node[etiquette] {$1$};
\draw[fleche] (Rbb)--(Rbbb) node[etiquette] {$1$};
\end{tikzpicture}
\end{center}
%:-+-+-+-+- Fin