Ruby将PRNG实现为“修改后的MersenneTwister,周期为2**19937-1”。1我对MT的理解是它在2^32种不同的种子上运行。让我感到困惑的是Random.new(seed)接受任意大的数字,例如Random.new(2**100)。但是,我无法找到(逻辑上的)碰撞:Random.new(1).rand(10**5)==Random.new(2**32-1).rand(10**5)=>falseRandom.new(1).rand(10**5)==Random.new(2**32).rand(10**5)=>falseRandom.new(1).rand(10**5