【发布时间】:2016-11-16 23:17:22
【问题描述】:
我正在尝试使用$group = rand(0,8) 从 php 中的均匀分布中生成一个随机数。我进行了大约 200 次实验,得到了以下分布,这表明所有组的被选中概率不均等。
Group | Freq. Percent Cum.
------+------------------------------
0 | 20 9.52 9.52
1 | 4 1.90 11.43
2 | 25 11.90 23.33
3 | 32 15.24 38.57
4 | 27 12.86 51.43
5 | 22 10.48 61.90
6 | 30 14.29 76.19
7 | 24 11.43 87.62
8 | 26 12.38 100.00
------+-------------------------------
Total | 210 100.00
我在这里阅读了PHP: rand() or array_rand trouble 的讨论帖,我问这个问题的唯一原因是因为我是 php 新手,不知道是否应该使用:
- random_int() http://php.net/manual/en/function.random-int.php
- stats_rand_gen_iuniform() http://php.net/manual/en/function.stats-rand-gen-iuniform.php
- 还是别的什么?
【问题讨论】:
-
任何随机整数函数都提供了一个统一的分布,也许除了
stats_rand_gen_iuniform(),但是这些函数是高度无证的,需要你安装 pear stats 包。但是,您可以创建自己的函数,检查出现次数array_count_values()与sizeof()数组以确定随机整数是否值得重新滚动。
标签: php random uniform-distribution