约束中的随机数

时间:2015-04-15 13:29:45

标签: java arrays histogram

所以,我确实做了e=(high-low)*x+low,但是,当我尝试使用它时,它只返回一个outOfBounds异常。当我没有将它转换为int时,它可以工作,但是我需要它返回一个整数,以使数组工作。

public static int randomInt(int low, int high)
    {double e;
    double x=Math.random();
        e=(high-low)*x+low;
    return (int)e;}

这是调用" randomInt"的方法。方法

public static int[] randomIntArray(int n)//generates an array of random numbers based on an upper and lower bound
    {int[] a=new int[n];
    for(int i=0;i<a.length;i++)
        {a[i]=randomInt(-5,15);}//"-5&15 are the lower and upper bounds of the random number array
    return a;}

3 个答案:

答案 0 :(得分:7)

x介于0和1之间。

为了使e在lowhigh之间,您需要:

e=(high-low)*x+low;

答案 1 :(得分:2)

检查this

public static int randInt(int min, int max) {

    Random rand = new Random();

    // nextInt is normally exclusive of the top value,
    // so add 1 to make it inclusive
    int randomNum = rand.nextInt((max - min) + 1) + min;

    return randomNum;
}

答案 2 :(得分:0)

使用return (int) (Math.random()*(high-low)+low);作为您的功能体。