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


PHP: Select a random numbers, evenly spaced

创建一个PHP函数的最有效方法是选择给定数量的随机数,但间隔均匀且不包含重复数?

例如,你想要0-6之间的3个随机数,结果可以是[0,2,5][1,3,6]

对于如何开始有什么想法吗?

请注意,下面的代码都不能直接用作复制粘贴。


如果要选择一个随机数,请使用mt_rand(min, max)

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

如果你想选择M个能被N整除的随机数,使用循环:

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

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

如果你的意思是均匀间隔,如"所有偶数",那么你可以根据2的模数检查数字:如果($n % 2 ==0){//做偶数的事情…}

用于(数组(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;
}