【发布时间】:2014-05-18 12:31:30
【问题描述】:
在过去的几天里,我一直在尝试找到一种在 PHP 中基于种子生成随机数的好方法。就像我相信你们中的大多数人已经知道一样,php rand() 方法在某些情况下过于随机,我真的需要一个 PRNG,它可以让我根据种子一遍又一遍地生成相同的序列号。
我已经尝试过使用 XORShift PRNG,但由于 PHP 处理位移的方式,不同的操作系统似乎会生成不同的答案。
我需要某种可以很好地与 PHP 配合使用的算法,它能够生成非常大的数字,因为无论如何我都会在它前面放一个零并将它变成一个小的双精度数。 (0.兰德)
【问题讨论】:
-
您正在寻找一种随机数生成器,它能够以可预测的方式一遍又一遍地生成相同的数字?有趣的。我建议您创建一次序列,并在每次再次需要该序列时存储并重复使用它。
-
不幸的是,这行不通,因为每当新用户创建帐户时,我都需要它来生成太阳能系统。为简单起见,我想将种子存储在数据库中,然后能够使用某种形式的 PRNG 在屏幕上渲染依赖于该种子的所有内容。
-
@arkascha 是的,这是 pseudo 随机数生成器的一个非常典型的用法。 @user
mt_srand+mt_rand不起作用...? 3v4l.org/AMWtr -
@arkascha 别是个聪明人
-
据我了解它们的工作方式是您设置“mt_srand”或“srand”,并且在调用“mt_rand”时它总是会为您生成相同的号码或“兰特”。