Exibir frequência de lançamentos aleatórios

9 respostas
R

.

9 Respostas

ViniGodoy

Olá! Para saber usar o fórum, não deixe de ler esse tópico.

Peraí, você quer que a gente implemente o programa inteiro para você? Isso a gente não faz… mas as dúvidas a gente te ajuda a responder!

Você tem dúvida aonde? Na classe random? Ou no arranjo? Ou seria para informar na tela?

Ponha o código aí de onde você está e que dúvidas você tem que a gente ajuda! :wink:

R

.

ViniGodoy

Use a classe Random para gerar os números aleatórios, não o método Math.random().

Por exemplo, para gerar 10 números aleatórios de 1 até 6:

public class DiceRoller { public static void main(String args[]) { Random dice = new Random(); for (int i = 0; i &lt 10; i++) { int result = dice.nextInt(6)+1; System.out.println(result); } } }

D

ViniGodoy:
Use a classe Random para gerar os números aleatórios, não o método Math.random().

Fiquei curiosa pra saber se tem algum motivo específico pra utilizar a classe Random e não o método Math.Random()

Eu tava dando uma olhada nos tópicos e ao ler este, surgiu essa dúvida… :shock:

ViniGodoy

Oi Dina,

Existe sim. Realizar produtos no Math.random() e depois arredonda-lo não gera um comportamento pseudo-aleatório muito bom. A classe Random veio justamente para resolver esse problema.

Você pode ler mais a respeito nesse capítulo do livro Effective Java, no item 30 - Know and use libraries. Lá o autor explica os problemas do Math.random(). Na verdade, eu recomendo que leia o livro todo, pois é repleto de dicas interessantes e explicações realmente úteis.

D

Mto obrigada Vini!
:smiley:

R

.

ViniGodoy

Olha só, o código:
1 + ( Math.random() * 6)

Não tem um comportamento muito bom. Se você o utilizar, terá dados viciados em alguns números e certamente a distribuição do resultado não estará dentro da curva normal (eu já testei isso).

Por isso, use o método random.nextInt(6); que te retorna um número de 0 até 5. E os resultados ficam corretamente distribuídos para o que esperaríamos de um dado.

Não entendi o que você quer dizer com “colocar dados em um arranjo”? O que você está chamando de arranjo e o que seu programa final deve fazer?

R

Realmente, esse código deixa o dado “viciado”. Depois de um tempo insiste em cair com uma frequência maior um certo número.

Obrigado pela explicação.

Criado 18 de março de 2007
Ultima resposta 20 de mar. de 2007
Respostas 9
Participantes 3