2011年8月23日 星期二

php 不重覆亂數~其他語言也可以參考

function rand($i)
{
while($i--)
{
if(isset($arr[$i]))continu​e;
$r=rand(0,$i);
$arr[$i]=isset($arr[$r])?$​arr[$r]:$r;
$arr[$r]=$i;
}
return $arr;
}
優點: 速度夠快、不用先建立array並填滿每個值
缺點: 因為第一句if(isset($arr[$i]))continu​e;所以"有可能"有跡可尋...不過把第一句拿掉就好了:p

沒有留言:

張貼留言