首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >生成相同的随机数序列

生成相同的随机数序列
EN

Stack Overflow用户
提问于 2011-10-26 19:44:46
回答 3查看 8.8K关注 0票数 19

我想在java中生成随机数,我知道我应该使用像Math.random()这样的现有方法,然而,我的问题是:如何在每次运行我的应用程序时生成相同的数字序列?示例:生成的序列是: 0.9,0.08,0.6,所以我希望每次执行此方法时都会生成此序列。

EN

回答 3

Stack Overflow用户

发布于 2011-10-26 19:45:52

当然-只需创建一个Random实例,而不是使用Math.random(),并且始终指定相同的种子:

代码语言:javascript
复制
Random random = new Random(10000); // Or whatever seed - maybe configurable
int diceRoll = random.nextInt(6) + 1; // etc

请注意,如果您的应用程序涉及多个线程,则会变得更加困难,因为计时变得难以预测。

这利用了Randompseudo-random number generator的优势-换句话说,每次你向它请求一个新的结果,它都会操纵内部状态,给你一个随机的序列,但是知道种子(或者说是当前的内部状态),它是完全可以预测的。

票数 32
EN

Stack Overflow用户

发布于 2011-10-26 19:46:06

您需要为随机数生成器设置种子。

代码语言:javascript
复制
Random random = new Random(aFixedNumber);
random.nextInt();  // will always be the same
票数 6
EN

Stack Overflow用户

发布于 2011-10-27 00:56:22

我已经把数字硬编码到应用程序中了。这需要更多的内存,但速度要快得多。

只需将随机数打印到终端,然后将它们复制粘贴到您的代码中。

一定要留下评论,解释你做了什么,否则在不知情的读者看来,它们就像是黑魔法。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7902124

复制
相关文章

相似问题

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