获取Java中的随机数字

可能重复:
Java:在一个范围内产生随机数

我想在Java中得到1到50之间的随机值。

我怎么可以在Math.random();的帮助下做到这一点Math.random();

如何限制Math.random()返回的值?

 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.使用Math.random()

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

这会给你从1到50的值使用Math.random()

为什么?

random()方法返回一个介于0.0和0.9之间的随机数…,将它乘以50,所以上限变成0.0到49.999 …当你加1时,它变成1.0到50.999 …,现在当你截断到int,你得到1到50.(感谢@rup在评论)。 leepoint在两种方法上都非常棒。

2.在Java中使用Random类。

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

这会给出从0到49的值。

对于1到50: rand.nextInt((max - min) + 1) + min;

一些Java随机awesomeness的来源 。