Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 尝试使用随机生成器设置简单的加法序列_Java_Random - Fatal编程技术网

Java 尝试使用随机生成器设置简单的加法序列

Java 尝试使用随机生成器设置简单的加法序列,java,random,Java,Random,我正在尝试使用随机生成器设置一个简单的加法序列。数字必须是整数。 以下是我试图实现的一个示例: (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,

我正在尝试使用随机生成器设置一个简单的加法序列。数字必须是整数。 以下是我试图实现的一个示例:

(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,因此我可以生成随机整数。

问题中只有两个数字是随机的——第一个数字和数字之间的差

生成两个随机整数;一个用于基数,一个用于步长,然后满足

(有一件事需要注意——您应该在程序中只创建一个随机数生成器。每次需要随机数时都重新使用该生成器。如果每次需要随机数时都创建一个新生成器,则您的数字将不会具有所需的随机性属性。)

首先,
nextInt()
仅返回int数据类型

其次,如果这是您最终生成的模式,那么您只需要生成第一个数字,然后生成它与第二个数字之间的差,然后您可以自己计算剩余的数字。要使用您的示例:

num1=generator.nextInt(2147483647);
将数字
4
存储在变量
num1
中。然后生成一个随机增量值,假设您再次调用
nextInt()
方法,并在
increment
变量中存储
6
。然后:

num2 = num1 + increment; // 4 + 6 = 10
num3 = num2 + increment; // 10 + 6 = 16
// Etc...

谢谢,在你发帖之前我就知道了。就像你说的,我的第一个数字和它们之间的差异是唯一的随机数。我可以把我的第一个数字加在差异上,以此类推。根据经验,关于so的问题不会加上“[已解决]”在标题中,但您应该接受最佳答案。@MJ93:两个小错误…在Java中,编写Integer.MAX_值比编写“2147483647”更容易出错,更好地传达“意图”。如果您确实坚持使用nextInt(Integer.MAX_值)选择步骤然后你会想实际使用long来解决你的问题,因为使用int的解决方案在步骤较大时会中断(使用int,你会很快“结束”并处理负值)。谢谢,我学到了我不必使用任何整数值,我可以将其设为一个限制,例如:100。但这很好。