Obtendo números randoms em Java

Duplicar Possível:
Java: gerando números randoms em um intervalo

Eu gostaria de obter um valor random entre 1 e 50 em Java.

Como posso fazer isso com a ajuda de Math.random(); ?

Como vinculo os valores que Math.random () retorna?

 import java.util.Random; Random rand = new Random(); int n = rand.nextInt(50) + 1; //50 is the maximum and the 1 is our minimum 
 int max = 50; int min = 1; 

1. Usando Math.random ()

 double random = Math.random() * 49 + 1; or int random = (int )(Math.random() * 50 + 1); 

Isso lhe dará valor de 1 a 50 no caso de int ou 1,0 (inclusive) a 50,0 (exclusivo) em caso de duplo

Por quê?

O método random () retorna um número random entre 0.0 e 0.9 …, você multiplica por 50, então o limite superior se torna 0.0 a 49.999 … quando você adiciona 1, torna-se 1.0 a 50.999 …, agora quando você trunca para int, você obtém de 1 a 50. (graças a @rup nos comentários). A excelente descrição de leepoint sobre as duas abordagens.

2. Usando a class aleatória em Java.

 Random rand = new Random(); int value = rand.nextInt(50); 

Isso dará valor de 0 a 49.

Para 1 a 50: rand.nextInt((max - min) + 1) + min;

Fonte de algum awesomeness random de Java.