[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Será que estou certo?
Não sei se entendi algo que já era claro para todos, se estou enganado,
ou se descobri algo novo. Por isto gostaria de opiniões a respeito.
Fiz a tal árvore de huff (sem a utilização do huff.c) e as letras em
ordem decrescente de frequencias. Veja abaixo um exemplo (por
conveniencia fiz a ordem decrescente de frequencias ser a ordem
alfabética):
Letra: M Codigo: 0111110
Letra: L Codigo: 0111111
Letra: K Codigo: 111110
Letra: J Codigo: 111111
Letra: I Codigo: 011110
Letra: H Codigo: 11110
Letra: G Codigo: 01110
Letra: F Codigo: 1110
Letra: E Codigo: 0110
Letra: D Codigo: 110
Letra: C Codigo: 010
Letra: B Codigo: 10
Letra: A Codigo: 00
Então notei que os únicos caractéres significativos são o primeiro e o
último. Então fiz o seguinte. Representei os 1´s entre o primeiro e o
último caractér como integers. Da seguinte forma. Se existem 0 1´s
entre o primeiro e o úlitmo algarismo do codigo, não imprimo nada, se
existir 1 algarismo imprimo um 0 entre o primeiro e o segunto e assim
por diante. Veja uma impressão do resultado:
Letra: M Codigo: 040
Letra: L Codigo: 041
Letra: K Codigo: 130
Letra: J Codigo: 131
Letra: I Codigo: 030
Letra: H Codigo: 120
Letra: G Codigo: 020
Letra: F Codigo: 110
Letra: E Codigo: 010
Letra: D Codigo: 100
Letra: C Codigo: 000
Letra: B Codigo: 10
Letra: A Codigo: 00
Os algarismos centrais agora representam as "alturas" referentes a cada
letra na árvore. Agora se escrever estes algarismos em binario, estarei
economisando bastante bits. Veja abaixo:
Letra: M Codigo: 01000
Letra: L Codigo: 01001
Letra: K Codigo: 1110
Letra: J Codigo: 1111
Letra: I Codigo: 0110
Letra: H Codigo: 1100
Letra: G Codigo: 0100
Letra: F Codigo: 1100
Letra: E Codigo: 010
Letra: D Codigo: 100
Letra: C Codigo: 000
Letra: B Codigo: 10
Letra: A Codigo: 00
Pronto, agora tenho um código bastante "econômico" para cada letra.
E ai? Algum lapso no meu raciocínio???? Se alguém tiver algum
comentário, por favor!!!
Valeu!
P.S.: TIMÃO VAI BOTAR PARA QUEBRAR HOJE!
--
krico
krico@kriconet.com.br