在Java中获取随机数

时间:2011-05-04 17:52:46

标签: java random

  

可能重复:
  Java: generating random number in a range

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

我如何在Math.random();的帮助下完成这项工作?

如何绑定Math.random()返回的值?

2 个答案:

答案 0 :(得分:627)

第一个解决方案是使用java.util.Random类:

import java.util.Random;

Random rand = new Random();

// Obtain a number between [0 - 49].
int n = rand.nextInt(50);

// Add 1 to the result to get a number from the required range
// (i.e., [1 - 50]).
n += 1;

另一种解决方案是使用Math.random()

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

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

答案 1 :(得分:568)

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到50的值 或者1.0(含)到50.0(不包括双重

  

为什么?

     

random()方法返回一个随机的   数字介于0.0和0.9之间......,你   将它乘以50,即上限   变为0.0到49.999 ...当你加1时,它变成1.0到50.999 ......,现在当你截断到int时,你会得到1到50.(感谢评论中的@rup)。 leepoint's对两种方法都进行了精彩的记录。

2。在Java中使用Random类。

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

这将给出0到49之间的值。

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

Source一些Java Random awesomeness。