I need to generate a large list of random numbers from 600k to 2000k, but the list can not have duplicates.
Benim şu anki 'uygulama' bu gibi görünüyor:
<?php
header('Content-type: text/plain');
$startTime = microtime(true);
$used = array();
for ($i=0; $i < 600000; ) {
$random = mt_rand();
//if (!in_array($random, $used)) {
$used[] = $random;
$i++;
//}
}
$endTime = microtime(true);
$runningTime = $endTime - $startTime;
echo 'Running Time: ' . $runningTime;
//print_r($used);
?>
If I keep the in_array
test commented the processing time is around 1 second, so
the mt_rand
calls and the used
array filling are relatively 'cheap' but when I uncomment
the in_array test bad things happens! (I'm just waiting -it's been more then 10 minutes- for the script to terminate...)
Yani (Nasıl çiftleri yakalanma riski olmadan rasgele sayılar oluşturmak olabilir) yinelenen algılama tarafında veya üretim kısmen ya alternatifler arıyorum
Ben hiç bir öneriye açığım.