我正在尝试使用随机生成器设置一个简单的加法序列。数字必须是整型的。下面是我想要实现的一个例子:
(4,10,16,22,28,?):用户必须输入序列中的下一个数字。(它是34,因为每个数字彼此相差6个数字。)
用户从生成器中获得随机数,但是相邻的两个数必须具有与下两个数相同的距离值。例如: 10-4 = 6,16-10 = 6,22-16 = 6。
private static void simpleAdditionSequence() {
    int num1, num2, num3, num4, num5, numUser;
    Random generator = new Random();
    num1 = generator.nextInt(2147483647);
    System.out.println(num1);
}我遇到的问题是弄清楚如何创建num2。如果我只是使用另一个生成器,它可能会小于num1,并且它需要具有与其余数字相同的距离值。
(注意-我使用了2147483647,所以我可以生成随机整数。
发布于 2011-10-25 07:57:29
你的问题中只有两个数字实际上是随机的--第一个数字和两个数字之间的差异。
生成两个随机整数;一个用于基数,一个用于步长,然后满足。
(需要注意的一件事是,您应该在程序中只创建一个随机数生成器。每次需要随机数时,都要重用这个生成器。如果您每次需要一个随机数时都创建一个新的生成器,那么您的数字将不会具有您想要的随机性属性。)
发布于 2011-10-25 07:58:30
首先,nextInt()只返回int数据类型。
其次,如果它是你最终生成的模式,那么你只需要生成第一个数字,然后计算它和第二个数字之间的差值,然后你就可以自己计算剩下的数字了。使用您的示例:
num1 = generator.nextInt(2147483647);将数字4存储在变量num1中。然后生成一个随机增量值,假设您再次调用nextInt()方法,并将6存储在increment变量中。然后:
num2 = num1 + increment; // 4 + 6 = 10
num3 = num2 + increment; // 10 + 6 = 16
// Etc...https://stackoverflow.com/questions/7883247
复制相似问题