可能重复:Java:生成范围内的随机数
我想在Java中获得1到50之间的随机值 .
我怎么能在 Math.random(); 的帮助下做到这一点?
Math.random();
如何绑定Math.random()返回的值?
int max = 50; int min = 1;
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对两种方法的精彩记录 .
Random rand = new Random(); int value = rand.nextInt(50);
这将给出0到49之间的值 .
1至50: rand.nextInt((max - min) + 1) + min;
rand.nextInt((max - min) + 1) + min;
Source的一些Java Random awesomeness .
第一个解决方案是使用 java.util.Random 类:
java.util.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.
另一种解决方案是使用 Math.random()
Math.random()
double random = Math.random() * 49 + 1;
要么
int random = (int)(Math.random() * 50 + 1);
2 回答
1.使用Math.random()
如果是int或1.0(含)到50.0(不包括),这将为您提供1到50之间的值
2.在Java中使用Random类 .
这将给出0到49之间的值 .
1至50:
rand.nextInt((max - min) + 1) + min;
Source的一些Java Random awesomeness .
第一个解决方案是使用
java.util.Random
类:另一种解决方案是使用
Math.random()
要么