程序如下:
<?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];
}
?>
这个程序运行出来的结果数字中还是有重复的现象,请各位帮我找一下这个程序算法哪里出了问题,谢谢
程序实现0到9十个数字中选四个不相同的数字随机排列的算法问题,求指教修改
答案:3 悬赏:0 手机版
解决时间 2021-01-29 18:18
- 提问者网友:不爱我么
- 2021-01-29 04:18
最佳答案
- 五星知识达人网友:神也偏爱
- 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
<?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));
再看看别人怎么说的。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯