Numeros aleatorios sem Random

Boa noite!
alguém sabe se existe alguma maneira de gerar números aleatórios sem a classe Random?

http://docs.oracle.com/javase/7/docs/api/java/lang/Math.html#random()

Existem vários algorítmos para isso. O Java usa o Linear Congruential (mesmo o math.random() usa a classe Random por baixo dos panos).

Outro algorítmo possível é o multiply with carry.

Veja um exemplo de uma implementação sofisticada dele em Java:
http://www.javaprogrammingforums.com/blogs/helloworld922/11-complimentary-multiply-carry-better-way-generate-pseudo-random-numbers.html

Mas por que você não quer usar Random ?

acho muito completo o random, para que tentar fazer de outra forma…

estou começando a aprender java e gostaria de saber outras formas, até encontrei algumas, mas elas apenas mostram sequencias e não números realmente aleatórios.

Por que outros algoritmos podem priorizar outros aspectos como os numeros serem criptograficamente fortes, serem mais rápidos de serem gerados, consumir menos memória ou terem sequencias mais longas sem repetição.

Numeros aleatórios tem muitos usos: em games, estatística, segurança, etc. Por isso é bom ter algoritmos variados.

Por que isso não é facil de se obter sem hardwares especiais. Em software o maximo que vc terá é a pseudo-aleatoriedade, dada a natureza deterministica dos algoritmos.

Por que isso não é facil de se obter sem hardwares especiais. Em software o maximo que vc terá é a pseudo-aleatoriedade, dada a natureza deterministica dos algoritmos.[/quote]

Vini, eu acho que você está usando termos técnicos demais para uma pessoa que está tendo seus primeiros contatos com o Java e quem sabe até com programação. Acho que assim você está confundindo mais ele do que ajudando.

Mesmo o uso de hardwares especiais não exclui o uso dessas sequências pseudo-aleatórias.
Tipicamente, a geração de números aleatórios com esses hardwares é lenta e gera números que não estão uniformemente distribuídos.
O que se faz é pegar uma sequência desses números que são “aleatórios de verdade” e então usá-la para alimentar o gerador de números pseudo-aleatórios, que tem propriedades estatísticas melhores (por exemplo, têm distribuição uniforme etc.). O nome técnico disso é “geração de entropia”.

Estava escrevendo do celular. Aí tive que ser sucinto. Realmente, a frase ficou um pouco técnica demais.

Mas o recado era somente que, como diria padre Quevedo: Números aleatórios reais? “isso non-ecziste.”.

Estava escrevendo do celular. Aí tive que ser sucinto. Realmente, a frase ficou um pouco técnica demais.

Mas o recado era somente que, como diria padre Quevedo: Números aleatórios reais? “isso non-ecziste.”.[/quote]

HEHE. realmente :smiley: