Olá pessoal, eu tenho que fazer um exercicio de vetores utilizando o math.radom() mas eu não sei direitinho como ele funciona. Alguem aí tem um artigo ou uma explicação simples, só pra eu entender a funcionalidade dele e ta. Obrigado aí.
Math.radom()
7 Respostas
O nome do método é “random” e basicamente ele lhe retorna um número qualquer que está entre 0.0 e 1.0.
O que você faz com esse número?
Por exemplo, se você quiser sortear um valor entre 1 e 6, como em um jogo de dados:
- Pegue o tal valor retornado por Math.random
- Multiplique por 6 (que é a quantidade de alternativas possíveis - 1, 2, 3, 4, 5, 6 - em um jogo de dados)
- Some 1 (que é o primeiro elemento)
- E então ache o valor inteiro dessas contas.
Se precisar sortear um valor entre 0 e 99:
- Pegue o valor retornado por Math.random
- Multiplique por 100 (que sáo as alternativas 0, 1, 2, 3, … 98, 99 )
- Some 0 (o primeiro elemento é zero)
- Ache o valor inteiro.
Para achar o valor inteiro, use um cast para (int)
O Math.random() te gera um número aleatório entre 0 e 1, aí eu geralmente multiplico pra ficar com a quantidade de números que eu quero.
Ex: Quero um número aleatório de 6 dígitos
System.out.println(Math.random() * 999999); Creio que devem haver maneiras mais eficientes.
Lembre-se também que o número gerado é um double. Eu não tratei os decimais no exemplo, mas você pode precisar.
O Math.random() te gera um número aleatório entre 0 e 1, aí eu geralmente multiplico pra ficar com a quantidade de números que eu quero.
Ex: Quero um número aleatório de 6 dígitos
System.out.println(Math.random() * 999999); Creio que devem haver maneiras mais eficientes.
Lembre-se também que o número gerado é um double. Eu não tratei os decimais no exemplo, mas você pode precisar.
A conta efetuada está errada, O correto, para um número de 6 digitos (que vai de 0 até 999999 - note que o número de alternativas possíveis é 1000000, não 999999) é:
(int) (Math.random() * 1000000)
Eu dei o exemplo do dado, só para perceber que é necessário contar quantas sáo as alternativas possíveis, em vez de só achar o maior número.
é, assim que eu li sua explicação vi a falha no meu código.
que “funciona”, mas pela regra está errado, nunca chegaria no 999999.
Acho que a confusão é que o Math.random() gera um número decimal aleatório entre 0 e 1, mas nunca o próprio número 1.
Boa tarde,
Se tiver alguma dúvida sobre o Math.random ainda, vou explicar um pouco sobre ele.
Para que funcione utilize da seguinte forma:
int i = 90 +(int) ( Math.random() * 11);
Nesse caso a variável i vai receber um valor de 90 a 100.
O math.random gera o número de 0 a 1, por exemplo 0,4 e vai fazer 0,4 * 11 = 4,4 o b[/b] faz um cast que nada mais é arrendondar o valor que o math.random retorna 4,4 vira 4, pois é um double e o 90 indica que irá começar em 90 e com a soma de 11 da 101, mas como ele sempre vai pegar o ultimo número ficando de 90 a 100.
Por exemplo se fosse de 5 a 15:
int i = 5 +(int) ( Math.random() * 11);
e de 1 a 10:
int i = 1 +(int) ( Math.random() * 10);
Espero ter ajudado.
Muito bom esse topico, vai ajuda muitos ini igual eu