【发布时间】:2016-04-19 12:57:56
【问题描述】:
我正在尝试在 Java 中生成一个随机的 BigInteger,但是当使用相同的种子作为安全随机数时,我需要生成相同的值:
BigInteger P = new BigInteger(1024,1,new SecureRandom(SEED));
奇怪的是,即使SEED的值相同,上面这行代码也会生成不同的值,这是怎么回事?
【问题讨论】:
-
'随机' - '必须相同' ...
-
有关 SecureRandom 工作原理的一些信息,请查看stackoverflow.com/questions/11051205/…的另一个问题
-
@Stultuske 这并不像听起来那么奇怪,如果提供相同的种子,有很多用例不需要另一个随机序列。显然也有实际需要相同序列的用例,即使序列本身由(伪)随机数组成。
-
@SebastiaanvandenBroek 我并不是说这很奇怪,我只是指出只要有“规则”,这个数字就不再是随机的了。
-
@Stultuske 我认为这里要区分的是,该序列中的数字对于该特定序列/在该特定序列内仍然是随机的,这就是 OP 需要的那种随机性。序列本身将是相同的似乎是期望的行为。
标签: java android random biginteger