随机数问题

时间:2013-08-25 20:46:03

标签: java random numbers

我有一个复杂的问题。我目前正在尝试编写一个非常简单的路径查找版本,为此我需要一种方法来生成一个范围内的数字,每个数字必须与其他数字不同,并且大于最后一个数字。我该怎么做呢?所以输出看起来像:

1,5,6,9,15,18

2 个答案:

答案 0 :(得分:1)

创建随机生成器函数:

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

    // Usually this can be a field rather than a method variable
    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;
}

(代码来自answer by Greg Case)。

在您想要的任何地方拨打电话,并查看:

int a;

a=randInt(min,max);

并在下一次解析先前生成的值,如:

randInt(a,  max);

答案 1 :(得分:0)

使用reservoir sampling从您的范围中选择 n 号码。由于您按顺序浏览范围,因此对结果列表进行了排序。