关于产生随机数的一点有趣的发现
时间:2010-08-12
来源:互联网
敝人是出学PHP,不足之处甚广,还请各位多指教了。今天练习写生成一组4位随机数的代码,写了两个,在写的时候发现了有趣的问题。
生成随机数的方法很多,老鸟们不用在这里鄙视我的方法啊
第一种是:
$arr=range(0,9);
shuffle($arr);
$arr=array_slice($arr,0,4);
print_r $arr;
第二种:
$arr=range(0,9);
shuffle($arr);
$arr=array_rand($arr,4);
print_r $arr;
发现第二种方法随机出来的数$arr[0]的值总是在0~5之间,[1]则是在1~6,[2]则是2~8之间,[3]则是5~9,而且多数情况是8和9.每个下标产生的随机数0~9不均等。
第一种只是打乱了一次数组的值,然后截取了前4个,每个下标每次产生的随机数0~9几率都是均等的。而第二次不仅打乱了数组的值,并且取的4个也是随机取的但还是不均等。只有把shuffle($arr)这句放到array_rand($arr,4)下面才和第一种方法一样。
呵呵。
生成随机数的方法很多,老鸟们不用在这里鄙视我的方法啊

第一种是:
$arr=range(0,9);
shuffle($arr);
$arr=array_slice($arr,0,4);
print_r $arr;
第二种:
$arr=range(0,9);
shuffle($arr);
$arr=array_rand($arr,4);
print_r $arr;
发现第二种方法随机出来的数$arr[0]的值总是在0~5之间,[1]则是在1~6,[2]则是2~8之间,[3]则是5~9,而且多数情况是8和9.每个下标产生的随机数0~9不均等。
第一种只是打乱了一次数组的值,然后截取了前4个,每个下标每次产生的随机数0~9几率都是均等的。而第二次不仅打乱了数组的值,并且取的4个也是随机取的但还是不均等。只有把shuffle($arr)这句放到array_rand($arr,4)下面才和第一种方法一样。
呵呵。
作者: gisiyang 发布时间: 2010-08-12
呵呵,这个确实很有趣啊。
作者: wanchun0222 发布时间: 2010-08-12
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28