Obter números aleatórios em Java [duplicado]

possível duplicado:
Java: a gerar um número aleatório num intervalo

Eu gostaria de obter um valor aleatório entre 1 a 50 em Java.

Como posso fazer isso com a ajuda de ...

Como amarro os valores que a matemática.o random() devolve?

Author: Community, 2011-05-04

2 answers

import java.util.Random;

Random rand = new Random();

int  n = rand.nextInt(50) + 1;
//50 is the maximum and the 1 is our minimum 
 504
Author: n_yanev, 2017-02-19 19:59:27
int max = 50;
int min = 1;

1. Usando Matemática.random ()

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

Isto dar-lhe-á valor de 1 a 50 no caso de int ou 1.0 (inclusive) a 50.0 (exclusivo) em caso de duplo

Porquê?

O método Random () devolve um método aleatório número entre 0.0 e 0.9..., você multiplica por 50, por isso limite superior torna-se de 0.0 a 49.999... quando você adicionar 1, torna-se 1.0 a 50.999... agora, quando você truncado para int, você começa de 1 a 50. (graças a @rup em comentários). A escrita impressionante de leepoint em ambas as abordagens.

2. Usando Classe aleatória em Java.

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

Isto dará valor de 0 a 49.

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

Fonte de alguma espectacularidade aleatória Java.

 539
Author: zengr, 2018-02-03 22:33:09