生成3个唯一的随机数,范围从1到100

时间:2019-07-09 08:03:19

标签: php arrays random

我编写了一个代码,该代码从该范围生成3个随机唯一数字。看来可行,但我想知道它是否正常运行,并且我的代码适合更大范围。例如,如果我不想生成3,而是生成1到10 ^ 6范围内的300个随机唯一数。在内存使用和执行时间方面,我的代码将如何执行?

该代码正在运行,但是我不确定。只是想确定一下,我没有丢失任何东西。

menu.page.html

因此,我想要工作性能良好的代码。

1 个答案:

答案 0 :(得分:0)

在这种情况下,递归功能会有所帮助

$r = f(1,1000000,300);

print_r($r);

function f($min, $max, $total, $current=[]){
  if(count($current) == $total){
    return $current;
  }
  $n = rand($min,$max);
  in_array($n, $current) ? '' : ($current[] = $n);
  return f($min, $max, $total, $current);
}

enter image description here