这只是模块化算法。您将乘以并乘以一个以2 ^
32为模的数字(例如),然后将高16位作为“随机”数字返回。因为您要乘以和添加模数互质的数字,所以会创建一种均匀分布的数字。
仔细选择两个数字非常重要。例如,如果您使用“ * 4”和“ + 8”,则可能不会遇到很多随机性。
这种方案称为线性同余。

这只是模块化算法。您将乘以并乘以一个以2 ^
32为模的数字(例如),然后将高16位作为“随机”数字返回。因为您要乘以和添加模数互质的数字,所以会创建一种均匀分布的数字。
仔细选择两个数字非常重要。例如,如果您使用“ * 4”和“ + 8”,则可能不会遇到很多随机性。
这种方案称为线性同余。