無論是web應用,還是wap或者移動應用,隨機數都有其用武之地。在最近接觸的幾個小專案中,我也經常需要和隨機數或者隨機數組打交道,所以,對於php如何產生不重複隨機數常用的幾種方法小結一下(ps:方法1、4、5是我常用的,其餘來自網路整理)
方法一:
$numbers = range (1,50);
//shuffle 將陣列順序隨即打亂
shuffle ($numbers);
//array_slice 取該陣列中的某一段
$num=6;
$result = array_slice($numbers,0,$num);
print_r($result);
?>
方法二:
$numbers = range (1,20);
//播下隨機數發生器種子,可有可無,測試後對結果沒有影響
srand ((float)microtime()*1000000);
shuffle ($numbers);
//跳過list第乙個值(儲存的是索引)
while (list(, $number) = each ($numbers))
?>
方法三:
function norand($begin=0,$end=20,$limit=5)
print_r(norand());
?>
上述可以在1-20間隨機產生5個不重複的值
方法四:
$tmp=array();
while(count($tmp)<5)
print_r($tmp);
?>
方法五:
$tmp = range(1,30);
print_r(array_rand($tmp,10));
?>
這個可能是比叫簡單的了(ps:如果在range中指定了步長,就必須注意array_rand的第二個引數是否超出$tmp的長度)。
高效產生不重複的隨機數
purpose 生成隨機的不重複的測試資料 1000w資料量,要保證生成不重複的資料量,一般的程式沒有做到。但,本程式做到了。include include include include include include define size 10000000 int num size void ...
C 產生不重複的隨機數
方法1 思想是用乙個陣列來儲存索引號,先隨機生成乙個陣列位置,然後把這個位置的索引號取出來,並把最後乙個索引號複製到當前的陣列位置,然後使隨機數的上限減一,具體如 先把這100個數放在乙個陣列內,每次隨機取乙個位置 第一次是1 100,第二次是1 99,將該位置的數用最後的數代替。int index...
PHP產生不重複隨機數的5個方法總結
無論是web應用,還是wap或者移動應用,隨機數都有其用武之地。在最近接觸的幾個小專案中,我也經常需要和隨機數或者隨機數組打交道,所以,對於php如何產生不重複隨機數常用的幾種方法小結一下 方法一 numbers range 1,50 shuffle 將陣列順序隨即打亂 shuffle number...