永发信息网

程序实现0到9十个数字中选四个不相同的数字随机排列的算法问题,求指教修改

答案:3  悬赏:0  手机版
解决时间 2021-01-29 18:18
  • 提问者网友:不爱我么
  • 2021-01-29 04:18
程序如下:
<?php
$num1=9;
$arr[0]=rand(0,$num1);
for($a=1;$a<=3;$a++)
{
for($b=0;$b<$a;)
{
$c=rand(0,$num1);
if($arr[$b]!=$c)
{
$b=$b+1;
}
else
$b=0;
}
$arr[$a]=$c;
}
for($p=0;$p<=3;$p++)
{
echo $arr[$p];
}
?>
这个程序运行出来的结果数字中还是有重复的现象,请各位帮我找一下这个程序算法哪里出了问题,谢谢
最佳答案
  • 五星知识达人网友:神也偏爱
  • 2021-01-29 04:47
不需要弄得这么复杂。
<?php
    $min = 0;
    $max = 9;
    $num = 4;
    $baseArray = range($min,$max);              //组成0-9的数组
    shuffle($baseArray);                        //打乱数组
    $output = array_slice($baseArray,0,$num);   //截取前面4个字符作为结果

    echo '<pre>';
    print_r($output);
//End_php
全部回答
  • 1楼网友:摆渡翁
  • 2021-01-29 06:00
直接改掉吧,这句话就够了 print_r(array_rand(range(0,9), 4));
  • 2楼网友:北方的南先生
  • 2021-01-29 05:44
直接改掉吧,这句话就够了 print_r(array_rand(range(0,9), 4)); 再看看别人怎么说的。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯