如何在 PHP 中获得一系列可重复的伪随机数?
在旧版本的 PHP 中,我只需在RNG http://en.wikipedia.org/wiki/Random_number_generation,但它不再起作用了,因为 PHP 改变了 rand 和 mt_rand 的工作方式。
另请参阅 PHP.net 页面中的此评论:
请记住,默认安装的 Suhosin 补丁
许多 PHP 安装(例如 Debian 和 DirectAdmin)完全禁用
srand 和 mt_srand 函数出于加密安全原因。到
从固定种子生成可重复的随机数
Suhosin 强化服务器,您需要包含您自己的伪随机数
生成器代码。
该评论的链接:http://www.php.net/manual/en/function.srand.php#102636 http://www.php.net/manual/en/function.srand.php#102636
有没有准备好的解决方案?我没有时间也没有经验来创建自己的伪随机生成器代码。
我的目标是拥有一个代码
<?php
//( pseudo random code here...)
$the_seed = 123; // 123 is just a number for demo purposes, NOT a static number
//...i hope you get the idea. It's just a hardcoded seed,
// it could be a seed based on a user-id, a date etc...
// we need the same output for a given seed.
//( pseudo random code here...)
// ...and finally
echo $the_random_number;
?>
所以每次我访问这个页面时我都应该得到相同的号码。
Mersenne Twist 是一个很好的快速 PRNG,下面是它的公共域 PHP 实现:
http://kingfisher.nfshost.com/sw/twister/ http://kingfisher.nfshost.com/sw/twister/
这只适用于 PHP 5.3.0 及以上版本。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)