如何高效的將5萬個不同的隨機數插入到資料庫中?

2021-04-18 16:57:48 字數 757 閱讀 1073

事實證明,這樣來生成5萬個不同的隨即碼,效率還是很高的,陣列的大小限制也完全足夠應付了。

<?php

$begintime 

= microtime

(true);

$min 

= 100000;

$max 

= 999999;

$isrand 

= $rands 

= array();

for ($i=

1;$i<=

50000;$i

++)  while (isset(

$isrand

[$rand

]));

$rands

= $rand;

$isrand

[$rand

] = 

true;

if ($i%

500 

== 0) 

} echo 

microtime

(true

) - 

$begintime;

echo 

'

'

, print_r

($isrand

, true

), '

';

?>

不包括插入資料庫部分,執行時間僅為0.1秒,而且我用的還是一台破電腦,效率還是很高的。

**有乙個邏輯錯誤,已經改過來了,疏忽了。$i應該從1起始,小於等於50000

如何高效的生成不重複的隨機數

背景 有個存有1000個問題的題庫,用陣列numhastack存,現要從中隨機生成5道題。如果直接用隨機數生成函式rand 然後把生成的題號存到陣列numgenerate中,會產生重複出現的問題。參考我原來的博文 1.最直接的解決辦法 每隨機生成乙個數,就拿到陣列numgenerate中比較,如果存...

如何讓Fortran生成不同的隨機數

用fortran生成隨機數的方法很簡單,就是 call random seed call random number rd 生成隨機數組可以這樣 do k 1,10 call random seed call random number rd x k rd do something end do 但...

如何得到多個不同的隨機數 洗牌演算法

先來思考乙個問題 有乙個大小為 100 的陣列,裡面的元素是從 1 到 100 按順序排列,怎樣隨機的從裡面選擇 1 個數?最簡單的方法是利用系統的方法math.random 100,這樣就可以拿到乙個 0 到 99 的隨機數,然後去陣列找對應的位置就即可。接下來在思考乙個問題 有乙個大小為100的...