A Asterix Medlem sedan dec. 1999 483 inlägg Frågan 12 apr. 2001 19:20 #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
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."