Racha Cuca
A primeira coisa a fazer para resolver o problema é examinar qual o universo de caracteres. O problema deu um dica, e se você tivesse a paciência de contar, veria: 24 espaços, 23 As, 22 Os, 21 Es, 20 Rs, 19 Ss, 18 Ps, 17Ms 16 Cs, 15 Ds, 14Is, 13 Us, 12Ts 11Bs. 10Ls, 9Ns, 8 Fs, 6Qs, 6Gs, 5Hs, 4Js, 3Vs, 2Xs e 1Z.
Com estes dados, podemos começar a montar a árvore> Escolhemos as duas menores freqüência, que são X e Z . Então, o nó 1 tem X à esquerda e o Z à direita. O nó 1 tem freqüência 3. Agora as duas menores freqüências são o nó 1 e a letra V. Os dois criam o nó 2, com freqüência 6. O próximo e o nós 3 que tem o H a esquerda e o J à direita, com freqüência 9. O próximo é o 4, que tem o nó 2 à esquerda e a letra G à direita.
E assim por diante. A árvore completa fica como está na figura 1 a seguir.
FIG 1 Árvore de Huffman do Puzzle
O dicionário completo de (de) codificação é:
A=0001
B=00000
C=1011
D=1101
E=0101
F=11000
G=00001
H=100000
I=1110
J=100001
L=01001
M=1010
N=10001
O=0011
P=1001
Q=11001
R=0110
S=0111
T=00001
U=1111
V=0000001
X=00000000
Z=00000001
Agora necessitamos converter para binário a mensagem recebida que foi:
B3 6E 34 94 4C 44 64
D8 55 C2 43 44 62 1E
8C 04 32 B1 72 D3 15
A1 41 05 58 53 02 8D
9D 0F D0 C9 B3 28 54
Convertendo fica:
1011 0011 0110 1110 0011
0100 1001 0100 0100 1100
0100 0100 0110 0100
1101 1000 0101 0101 1100
0010 0100 0011 0100 0100
0110 0010 0001 1110
1000 1100 0000 0100 0011
0010 1011 0001 0111 0010
1101 0011 0001 0101
1010 0001 0100 0001 0000
0101 0101 1000 0101 0011
0000 0010 1000 1101
1001 1101 0000 1111 1101
0000 1100 1001 1011 0011
0010 1000 0101 0100
1011 (C) 0011 (0) 0110 (R)
1110 (I) 0011 (0) 01001 (L)
0010 (A)
10001 (N) 0011 (0) 0010 ( )
0010 ( ) 0010 ( ) 1001 (P)
0011 (0)
0101 (R) 0001 ( ) 0101 (E)
0111 (S) 00001 (T) 0010 (A)
0001 ( )
1010 (M) 0010 (A) 0011 (0)
0001 ( ) 00001 (T) 1110 (I)
10001 (N)
100000 (H) 0010 (A) 0001
( ) 1001 (P) 0101 (E) 10001
(N) 0111 (S)
0010 (A) 1101 (D) 0011 (0)
0001 ( ) 0101 (E) 1010 (M)
0001 ( )
01000 (B) 0010 (A) 00001 (T)
0101 (E) 0110 (R) 0001 ( )
01001 (L)
100000 (H) 0101 (E) 0001
( ) 1011 (C) 0011 (0) 1010
(M) 0001 ( )
1111 (U) 1010 (M) 0001 ( )
1001 (P) 0011 (0) 0110 (R)
0110 (R)
0101 (E) 00001 (T) 0101 (E)
+2 bits zero (stuffing)
E a frase buscada é da obra CORIOLANO, e é: POR ESTA MÃO TINHA PENSADO EM BATER-LHE COM UM PORRETE.