Amigos, em um determinado projeto de sorteio, estava com dificuldades em gerar números realmente aleatórios, e não apenas ficar usando a função rand(), que é algo pseudo-aleatório. E com isso encontrei grandes dificuldades que espero ter superado. Só preciso achar outras formas de testar.
Alguém conhece algum algorítmo de descorelação de bits, ou que cause entropia nos bits? Estranho neh! E pode ter certeza que é realmente complicado gerar números genuínamente aleatórios. No meu projeto eu criei um gerador de ruído, (ver links), leio o sinal da porta a cada 2us, faço um clareamente dos bits (elimino excesso de repetições) usando o método de Von Neumann e depois tiro o hash com Sha1, Ufffa!, só que é meio demorado, tendo em vista minha demanda de números aleatórios.
referências:
http://www.araneus.fi/products-alea-eng.html (produto comercial que se conecta na USB)
http://www.ciphersbyritter.com/RES/RNGMACH.HTM (Discussões de "randomness")
http://rfc.net/rfc1750.html (Definições do que é ser randômico)
http://www.ciphersbyritter.com/NOISE/NOISRC.HTM (meu esquema elétrico)
http://en.wikipedia.org/wiki/Random_number_generator (+ coisas pra ler)
http://www.google.com/codesearch?hl=pt- ... erand.c#a0 (Programa de hash em SHA1)