[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Será que estou certo?



Krico.. vc tem certeza que o seu codigo sempre adquire esta forma??? o meu
por exemplo quase nunca tem só 1s no meio.....

 Alexandre Freire      <alex@linux.ime.usp.br>

On Sat, 12 Dec 1998, Christian Asmussen wrote:

> 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
> 
>