webForumDet fria alternativet

shuffle funkar inte

1 svar · 145 visningar · startad av Asterix

AsterixMedlem sedan dec. 1999483 inlägg
#1

Jag har ett skript som använder sig av shuffle men av någon konstig anledning så blir det inte riktigt slumpmässigt. Kör jag programmet 10000 och jag har 10 alternativ borde varje alternativ komma först 1000 gånger men så blir det inte. Därför gjorde jag ett testskript:

<?
for ($_i = 0; $_i < 10; $_i++) {
  $_temp[$_i] = 0;
}

for ($_i = 0; $_i < 10000; $_i++) {
  $_a = range (0,9);
  srand((double)microtime()*1000000);
  shuffle ($_a);
  $_temp[$_a[0]]++;
}

for ($_i = 0; $_i < 10; $_i++) {
  echo $_temp[$_i] . "<br>";
}
?>

Det kan vara koden som är fel, men säg till om ni förstår vad som inte funkar. Skriptet finns här: http://www.webhallen.se/admin/random.php

------------------
/Emil Hesslow

Gislaved.netMedlem sedan juni 20001 521 inlägg
#2

Testa med

<?

srand((double)microtime()*1000000);

for ($_i = 0; $_i < 10; $_i++) {
$_temp[$_i] = 0;
}
for ($_i = 0; $_i < 10000; $_i++) {
$_a = range (0,9);
shuffle ($_a);
$_temp[$_a[0]]++;
}

for ($_i = 0; $_i < 10; $_i++) {
echo $_temp[$_i] . "<br>";
}
?>

istället. Annars kör du srand flera gånger, och då kan det gå åt skogen.

------------------
Gislaved.net
"Tänk på vad du säger så att du inte säger vad du tänker."

132 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)