扫码关注官方订阅号
使用rand函数时发现,产生的随机数有相同的规律。查了一下才发现有真假随机数之分,好奇是什么导致了rand函数生成的是假随机数,而srand的是真随机数?
题主貌似搞错了 srand 的功能了,这个函数用来设置随机数的种子,并不是用来生成随机数的。在种子确定的情况下,不断调用 rand 产生的值序列就是确定,这就是伪随机。
srand
rand
所谓真随机,完全不可预测的随机数,一般都是要读取一些外部设备的白噪声来获得随机数,比如耳机输入口的噪声,或者网卡接口的噪声等。*nix 系统里面有个 /dev/random 就是用来产生这种真随机数的。
/dev/random
真随机是无法通过某个固定算法来模拟的,因为一旦有了固定算法,随机序列就可以被预测,它就不算真随机了。
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
题主貌似搞错了
srand的功能了,这个函数用来设置随机数的种子,并不是用来生成随机数的。在种子确定的情况下,不断调用rand产生的值序列就是确定,这就是伪随机。所谓真随机,完全不可预测的随机数,一般都是要读取一些外部设备的白噪声来获得随机数,比如耳机输入口的噪声,或者网卡接口的噪声等。*nix 系统里面有个
/dev/random就是用来产生这种真随机数的。真随机是无法通过某个固定算法来模拟的,因为一旦有了固定算法,随机序列就可以被预测,它就不算真随机了。