개발하다보면 여러개의 난수를 중복없이 발생시킬때가 있는데..
<?
//난수발생함수 : 시작부터 종료값 사이의 난수를 필요한 갯수만큼 배열로 리턴함.
// 시작값, 종료값, 필요한 난수 갯수(중복없이)
function rand_util($start,$end,$cnt)
{
$rtv=array();
$ss=0;
srand((double)microtime()*1000000);
for(;;)
{
$ss++;
$tmp=rand($start,$end);
$sw=1;
for($ii=0;$ii<count($rtv);$ii++)
{
if($rtv[$ii]==$tmp)
{
$sw=2;
break;
}
}
if($sw==1)
$rtv[count($rtv)]=$tmp;
if(count($rtv)>=($cnt))
break;
}
echo " $ss 번 추출";
return($rtv);
}
$qnum = rand_util(1,60,50);
echo "<br> 난수발행함수 시험 <br>";
echo count($qnum);
echo "<br> 난수<br>";
sort($qnum);
for($ii=0;$ii<count($qnum);$ii++)
{
echo " $qnum[$ii] ";
}
?>
|
|