用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() * 49 + 1;
or
int random = (int )(Math.random() * 50 + 1);

如果是int或1.0(包括)到50.0(不包括),则会给你1到50的值

为什么?

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 Random awesomeness的来源。

链接地址: http://www.djcxy.com/p/2927.html

上一篇: Getting random numbers in Java

下一篇: Generate random number between two numbers in JavaScript