首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >尝试使用随机生成器设置简单的加法序列

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

Stack Overflow用户
提问于 2011-10-25 07:52:10
回答 2查看 371关注 0票数 2

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

(4,10,16,22,28,?):用户必须输入序列中的下一个数字。(它是34,因为每个数字彼此相差6个数字。)

用户从生成器中获得随机数,但是相邻的两个数必须具有与下两个数相同的距离值。例如: 10-4 = 6,16-10 = 6,22-16 = 6。

代码语言:javascript
运行
复制
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,所以我可以生成随机整数。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-10-25 07:57:29

你的问题中只有两个数字实际上是随机的--第一个数字和两个数字之间的差异。

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

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

票数 3
EN

Stack Overflow用户

发布于 2011-10-25 07:58:30

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

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

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

代码语言:javascript
运行
复制
num2 = num1 + increment; // 4 + 6 = 10
num3 = num2 + increment; // 10 + 6 = 16
// Etc...
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7883247

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档