Java的java.util.Random可靠吗?

Mik*_*ren 2 java random mersenne-twister

我不禁注意到......在我开始开发我的数学游戏之后(经过不断的调整后将它交给beta测试者,我还没有完成!)我的使用java.util.Random和它的方法nextInt()可能不会被加倍我正在寻找可靠的救世主课程.它是否为像我这样的应用程序生成随机数?//这个应用程序的目的是制作一个对ALL PEOPLE具有挑战性的算术游戏,让你解决整数和浮点参数的问题.我的程序生成的最高数字是一个6位数字,这是因为我用于人类计算器(最高级别)难度的一些不同逻辑,即分裂问题.我正在考虑使用Mersenne twister算法,但我认为算法使用了java.util.Random是这样的:http://docs.oracle.com/javase/7/docs/api/java/util/Random.html#next%28int%29.

此外,我想知道是否建议我使用类似的东西 new java.util.Random(System.currentTimeMillis())

rad*_*dai 6

Random'no-arg构造函数已经基于当前时间(通过它的cpu nanoTime而不是UTC日期),因此只需创建它就会每次都获得不同的种子.种子Random(long)版本(根据我的经验)主要用于需要可预测的输出(例如,计算机游戏的一些程序生成例程,允许玩家指定随机种子)

如果您非常担心随机数是多么随机,您可能需要查看SecureRandom,建议使用普通的Random进行加密等.还有如何使用它一个很好的解释这里和两者之间的差异的一个很好的解释在这里