PHP:选择一个均匀间隔的随机数

时间:2011-10-15 22:33:02

标签: php random

创建PHP函数的最有效方法是什么,它将选择一定数量的随机数,但均匀分布并且不包含重复项?

例如,假设您想要0到6之间的3个随机数,结果可能是 [0,2,5] [1,3,6] 。< / p>

关于如何开始的任何想法?

2 个答案:

答案 0 :(得分:2)

请注意,以下代码均不能直接用作复制粘贴。


如果您想选择 a 随机数,请使用mt_rand(min, max)

如果要选择可被N整除的随机数,请使用mt_rand(min, max)*N

如果要选择可被N整除的M个随机数,请使用循环:

for($i = 0; $i <= M-1; $i++) {
    $result[$i] = mt_rand(min, max)*N;
}
print_r($result);

这就是我从你的问题中理解的。

答案 1 :(得分:0)

如果你的意思是“所有均匀”中的均匀间距,那么你可以检查数量与模数2:if($ n%2 == 0){//做偶数偶数...}

array_rand(array(1,2,3,4,5,6 ......),3);会给你一个数字池中的3个随机数字,但它们当然是随机的...不均匀间隔...一组中均匀分布的数字根据定义很难随意吗?

我的意思是随机选择数组的索引,然后在某个时间间隔内添加该索引处的元素,在需要的多次迭代中执行该操作。

$random_numbers = array(1,2,3,4,5,6,7,8,9);
$random_val = array_rand($random_numbers, 1);
$iterations = 3;
for ($i=0; $i<$iterations; $i++){
    $random_val = $random_val+2;
    print $random_val;
}
相关问题