类:将实数设置为两个其他数字之间的随机数

时间:2013-04-14 03:52:06

标签: bluej

遇到问题的数学部分的麻烦。

该类应该将值设置为两个其他数字(包括)之间的随机数。

离。如果传入20,平均值为70,则会生成60到80之间的随机数,然后将其存储为值。

我知道公式的一部分是:(平均值 - 范围/ 2)和(平均值+范围/ 2)。

范围=传入的数字。
平均=原始数字。

1 个答案:

答案 0 :(得分:0)

剩下要做的就是使用Random对象来获取您范围内的随机数。这是在循环中获取其中十个的代码。

import java.util.Random;

public class RandomNumber
{
   public static void main(String[] args) {
       int range = 20;
       int average = 70;
       int base = average - range/2;

       Random rand = new Random();

       for (int i = 0; i < 10; i++) {
           int num = rand.nextInt(range + 1) + base;
           System.out.println(num);
       }
   }
}

由于调用nextInt(int n)方法会返回从0(包括)到n(不包括)的随机数,因此您必须将其传递给range + 1,因为您希望包含范围的两端,而不是只是低端。使用上面使用的值,对rand.nextInt(range + 1)的调用将返回0到20之间的值。当添加base值60时,这些值将转换为60 - 80。