最佳数字作为随机类的种子

Mah*_*hdi 3 java random

我想生成两个整数之间的随机数.在我的情况下,数字必须满足一些其他条件.我把generator.nextInt(x)在一个循环中,并重新设置种子,如果新的号码不符合我的条件.

当我System.currentTimeMillis()用作种子时,生成的数字与循环迭代次数相同.我替换System.currentTimeMillis()System.nanoTime().结果比前一个好得多.

我想知道有没有更好的方法来设定种子?

rge*_*man 11

你可以使用构造函数来Random获取参数.该构造函数System.nanoTime()已基于已初始化其种子.每次调用该构造函数时,种子都会不同.

一般来说,Random当你想要一个可重复的随机数据序列(它们是确定的)时,你只会自己种子.

无论哪种方式,您始终可以保持调用nextInt(或任何nextXyz方法)并保持获得更多随机数,而无需为每个数字重新种子.

Java中的随机数是伪随机数.他们需要一个用于生成下一个随机数的种子.

  • @Mahdi的种子是开始序列.对于Random和一些SecureRandom策略,您可以从给定的种子获得相同的序列.如果您想稍后重现相同的随机数,这将非常有用. (2认同)