首页 / PHP / PHP – 伪随机数发生器?
PHP – 伪随机数发生器?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了PHP – 伪随机数发生器?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1249字,纯文字阅读大概需要2分钟。
内容图文
![PHP – 伪随机数发生器?](/upload/InfoBanner/zyjiaocheng/817/b767230e8a844992856d67a0eab24e9e.jpg)
在过去的几天里,我一直在努力寻找一种基于种子在PHP中生成随机数的好方法.就像我相信你们大多数人已经知道的那样,对于某些情况,php rand()方法太随机了,而且我真的需要一个PRNG,它允许我根据种子一遍又一遍地生成相同的序列号.
我已经尝试过使用XORShift PRNG,问题来自于不同的操作系统似乎因为PHP处理位移而产生不同的答案.
我需要某种适用于PHP的算法,它能够生成相当大的数字,因为无论如何我会在它前面放一个零并将它变成一个小的双. (0.RAND)
解决方法:
mt_srand(42);
echo mt_rand(1, 100);
echo mt_rand(1, 100);
echo mt_rand(1, 100);
这会在我的系统上产生序列64,80,96.每次执行此代码时都会这样做.您使用特定数字(此处为42)为生成器播种一次,然后再次调用生成器以生成随机数.
随机数生成器(真正不可预测的随机性)不能播种并产生真正不可预测的随机数.计算机通常无法做到这一点,因为随机性正是他们不做的事情.计算机是确定性的,不能产生真正的随机性.你需要做一些事情,比如测量放射性衰变,以产生真正的随机性.
伪随机数生成器出现在它的表面上以随机行为,但它们不是.它们以一个数字开头,然后对该数字应用确定性数学运算来改变它并产生不同的数字.每次调用生成器时,它将根据其最后一个数字生成一个新数字.因此,PRNG的顺序始终相同.良好的PRNG以这样的方式应用操作,即序列看起来非常随机分布.通常情况下,它们会播放类似于一天中的时间,因此如果您没有明确播种,它们会显得随机.如果你用特定的值为它们播种,它们将产生一个固定的预定数字序列.
内容总结
以上是互联网集市为您收集整理的PHP – 伪随机数发生器?全部内容,希望文章能够帮你解决PHP – 伪随机数发生器?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。