<?
$arr=array();
while(count($arr)<10){
$a=rand(1,200);
if(!in_array($a,$arr)){
$arr[]=$a;
}
}
echo '<pre>';
print_r($arr);
?>
$arr=array();
while(count($arr)<10){
$a=rand(1,200);
if(!in_array($a,$arr)){
$arr[]=$a;
}
}
echo '<pre>';
print_r($arr);
?>
{ for($j=0;$j<=$i;$j++)
{
if ($randum[$i] == $k)
{
return(False);
}
}
return(True);
}for ($i=0;$i<20;$i++) //产生20个例
{
$randnum[$i] = 0; //初始化
}$i = 0;
while (True)
{
$k = rand(1,200); if checkrand($k,$randnum,$i) //值不重复
{
$i++;
$randnum[$i] = $k;
if ($i = 20)
{
exit(); //取得想要的随机个数,退出循环
} }
}
$randnum[]中就是满足你要的随机数。
http://expert.csdn.net/Expert/topic/369/369601.xml?temp=.4610712接下来要再问一个,我取两次,第一次与第二次不能重复!
先谢谢上面两位了,会给你们每人30分的!
$randnum[1][0]~$randnum[1][19]中,
第二次的放在$randnum[2][0]~$randnum[2][19]中。用in_array可以保证排除第一次已选出的值。
$arr=array();
while(count($arr)<10){
$a=rand(1,200);
if(!in_array($a,$arr)){
$arr[]=$a;
}
}
echo '<pre>';
print_r($arr);
?>
这段程序的作用就是从1-200中取出10个不重复的随机数。
自己试一下先。
,我想问一下,分两次取的时候,比如第一次10个数,第二次10个数,这20个数不能有相同的如何写呀?要的是程序呀,
我也明白用in_array()来写,可不知道怎么写才好用,好久不写了,麻烦一下各位了,你们写一下,我看一下吧!谢谢了!
用 uGain(幽亙)的代码改,如下:<?
while(count($arr)<10){
$a=rand(1,200);
if(!in_array($a,$arr)){
$arr[0][]=$a; //第一次这样改
}
}//下面是第二次取值
while(count($arr)<10){
$a=rand(1,200);
if(!in_array($a,$arr)){
$arr[1][]=$a; //第二次取值放入另一列
}
}
?>clear?
$arr=array();
while(count($arr)<10){
$a=rand(1,200);
if(!in_array($a,$arr)){
$arr[]=$a;
}
}
sort($arr);
for($i = 0; $i < count($arr); $i++)
{
echo $arr[$i]."\n";
}echo "再10个数!";
echo "<br>";
$brr=array();
while(count($brr)<10){
$b=rand(1,200);
if(!in_array($b,$arr)){
if(!in_array($b,$brr)){
$brr[]=$b;
}
}
}
sort($brr);
for($j = 0; $j < count($brr); $j++)
{
echo $brr[$j]."\n";
}
?>
也就是说第二次取数的时候不要加
$arr=array();
这句,直接用已有的$arr。