php算法
编号1-n的人围成一圈,开始报数m,则第m号人出列,然后从m+1号人开始报数 不断循环报数 直至所以人出列的算法
编号1-n的人围成一圈,开始报数m,则第m号人出列,然后从m+1号人开始报数 不断循环报数 直至所以人出列的算法
function rand_number($num) { return rand(0,$num); } function outnumber($n,&$arr,$max) { $number=rand_number($max); if($number>$n) $number=$number%$n+1; while(!empty($arr)){ if(!isset($i)) {unset($arr[$number]);var_dump($arr);}//删除元素 $i=$number;//需要索引才能找到下一个间距为新$number的元素 $number=rand_number($max);//生成下一个随机数 if($number>$n) $number=$number%$n+1; echo '下一个间距'.$number.'元素'.'<br>'; $count=0; $n=end($arr); while($count<$number){ if($i>=$n) $i=1;//最后一个元素则返回到第一个元素 else $i++; if(!isset($arr[$i])) {continue;} else {$count++;}//找到一个元素才++ } unset($arr[$i]); var_dump($arr); } } $max=100; $n=6; for($i=1;$i<=$n;$i++) $arr[$i]=$i; outnumber($n,$arr,$max);
- 上一篇:设置URL访问指定IP的服务器
- 下一篇:PHP生成树
精彩图集
精彩文章