Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

~TiuTalk~

[Resolvido] Gerador de números aleatórios

Recommended Posts

Fala gente,

 

Acredito que muita gente achou o titulo do tópico estranho, mas é isso mesmo! :blink:

 

Não vou me aprofundar muito no assunto por que ficaria muito complexo... Mas o fato é que nenhum programa de computador, sozinho, pode gerar um número aleatório. Ele pode sim gerar um número que não seja previsível, mas não algo literalmente aleatório.

As rotinas e algoritmos "random", de todas as linguagens, usam uma função ou conta pra gerar o número "aleatório", e sendo uma função, ela tem resultados esperados.

 

Então alguns sites na Internet estão trabalhando com a geração de números realmente aleatórios, baseando-se em eventos naturais: sons atmosféricos, descarga elétrica dos raios, energia solar, posição dos astros, humidade no ar... Todos esses eventos, podem sim ser alterados pelo homem, mas não são nem um pouco presumíveis ou adivinháveis... Esses sites arquivam esses dados e estatisticas, e usam esse valores (em binário) para gerar sequencias número aleatórios.

 

Criei então um classe que usa o sistema de um desses sites, o http://random.org/ (que por sinal tem um ótimo material sobre o assunto).

 

Vamos ao script:

Versão: 1.0 (08/02/2009)

Download: PasteNinja

 

Sobre o seu funcionamento:

Tem um exemplo no fim do arquivo de como usar o script. É bem simples!

 

Configurações:

// Exemplo de uso:
 // Se for mais de um número, o resultado é em formato de array
 
 $rand = new myRandom();
 $rand->minimo = 1; // Valor mínimo
 $rand->maximo = 100; // Valor máximo
 $rand->tipo = 'file'; // Tipo de conexão: 'file' ou 'curl'
 $rand->quantidade = 1; // Quantidade de números a serem gerados
 $resultado = $rand->geraNovo();
Tudo o que vocês precisam está ai.

 

Mais um detalhe: o random.org permite uma cota de 1.000.000bits por dia pra cada IP, então se o seu site ultrapassar essa cota, não vai ser possível gerar números aleatórios por algumas horas. Mas cada número aleatório gerado, entre 0 e 100 consome 7bits (se você gerar 10 números vai gastar 70bits), então você tem uma margem de 140.000 números por dia, o que é o suficiente pra muita gente.

 

Qualquer erro, dúvida ou sugestão é só falar!

 

Fico aguardando comentários! :)

 

Ps.: Eu não abri esse tópico pra falar "parem de usar o rand()!"... Que fique claro. :D

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.