我对Java RNG的工作原理非常感兴趣。我已经了解到使用
由于
我已经尝试过暴力测试所有与初始值同余的数字对,但这对计算机来说非常耗时和困难。
还有其他方法可以高效地获取种子吗?
getLong()
方法和getInt()
方法以及两个值非常容易。我想知道如何使用getInt(int n)
方法获取种子,已知n
的值。由于
getInt(n)
通常使用val = bits % n;
并重复此过程,直到bits - val + (n-1) >= 0)
,其中bits是next(31)
,因此val == bits (mod n)。我已经尝试过暴力测试所有与初始值同余的数字对,但这对计算机来说非常耗时和困难。
还有其他方法可以高效地获取种子吗?
getLong
很容易?另外,你是指第一次调用getInt
还是任意调用? - Julián Urbano