• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

SunShade

hash functions

5 mensagens neste tópico

boas noite pessoal!algem sera k m podia dar exemplos d hash functions simples ou d algum site k contenha alguns algoritmos que ajudem?eu preciso d converter uma string em inteiro e a funçao atoi nao funciona porque se a string conter caracteres vai retornar 0.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Em que contexto é que queres usar a função de hash?

Para usar em tabelas de hash? Para usar em criptografia? Para verificar integridade de dados? ...

Para usar com tabelas de hash, podes simplesmente somar todos os elementos do array (embora devas complicar um pouco o algoritmo, caso contrário é fácil haver colisões).

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

eu o que estou a fazer e uma tabela em que cada posiçao da tabela e uma  cabeça de uma lista  lista ligada.o programa ta todo a funcionar bem pk consegui fzr uns testes gerando uns numeros random e uma expressao que me garanti-se que eles entravam nos limites da tabela mas nao testo para keys iguais pois cmo sao gerados numeros random essa parte nao testei .Nao e preciso criptografia nem nada disso so queria uma funçao simples que me desse uma dispersao porreira na tabela e uma simples funçao d hashing.vou experimentar somar os elementos do array mas o pior e as colisoes.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Supondo que a string só tem letras minúsculas, existe uma função porreira.

Cada letra corresponde a um valor a=0,b=1, ...,  z=25.

Multiplicas o valor de cada letra com 26^posicao e somas tudo.

Por exemplo, se tiveres a string "adf" e aplicares esta função ficas com 0*26^0 + 3*26^1+ 5*26^2.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora