Exibir frequência de lançamentos aleatórios

.

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:

.

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); } } }

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

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:

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.

Mto obrigada Vini!
:smiley:

.

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?

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.