我想生成两个整数之间的随机数。就我而言,这些数字必须满足其他一些条件。我放generator.nextInt(x)
如果新数字不符合我的条件,则循环并再次设置种子。
当我使用时生成的数字与循环迭代的次数相同System.currentTimeMillis()
作为种子。我替换System.currentTimeMillis()
with System.nanoTime()
。结果比之前好很多。
我想知道有没有更好的方法来播种?
您可以使用构造函数Random http://docs.oracle.com/javase/7/docs/api/java/util/Random.html#Random%28%29不需要参数。该构造函数根据以下内容初始化其种子System.nanoTime()
已经。每次调用该构造函数时,种子都会不同。
一般来说,你只会播种Random
当您想要可重复的随机数据序列时(它们是确定性的)。
无论哪种方式,您都可以随时致电nextInt
(或任何nextXyz
方法)并不断获得更多随机数,而不必为每个数字重新播种。
Java 中的随机数是伪随机数。他们需要一个用于生成下一个随机数的种子。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)