如何在java中的1次执行中生成带有种子的7个伪随机数

时间:2016-09-05 23:34:25

标签: java

问题是:种子是10L,生成并打印0(包括)和200(不包括)之间的7个伪随机整数值。

我试过的代码:

public static int randomGenerator() {
    Random generator = new Random(10L);
    return generator.nextInt(200 - 0) + 0;
}

System.out.println(randomGenerator());

1 个答案:

答案 0 :(得分:2)

要生成7个数字,您必须在不创建新nextInt实例的情况下调用Random方法7次。要在一次执行"中返回所有7个值",您需要返回一个数组或List

我还建议为您的方法提供一些参数,以便它不与这些规格相关联。

public static int[] getRandomInts(long seed, int amount, int min, int max) {
    Random rand = new Random(seed);
    int[] nums = new int[amount];
    for (int i = 0; i < amount; i++) {
        nums[i] = rand.nextInt(max - min) + min;
    }
    return nums;
}

在Java 8中,Random类具有返回ints的替代IntStream方法:

public static int[] getRandomInts(long seed, int amount, int min, int max) {
    return new Random(seed).ints(amount, min, max).toArray();
}

然后在你的调用范围内迭代数字以打印它们。