PHP 產生不重複隨機數的方法

2022-04-10 08:45:15 字數 984 閱讀 4595

無論是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...