Autor Zpráva
Honzaaa
Profil *
Ahoj, nevíte někdo jak co nejefektivněji vyřešit následující:

potřeboval bych vybrat náhodné číslo z intervalu 1 - 40. Ve chvíli kdy se vybere, tak bych potřeboval vybrat další náhodné číslo z toho samého intervalu tak, aby již nepadlo to, které bylo vybrané .... a takto pořád dokola až postupně vyberu náhodně všechna čísla z toho intervalu aniž by se žádné opakovalo (potřebuju to pro postupné náhodné kladení 40ti otázek).

Asi by to šlo udělat tak, že bych si ta vybraná čísla někam ukládal a pak když bych náhodně vybral číslo, tak bych zkontroloval, zda neni již mezi těmi uloženými a pokud by bylo, tak by to náhodně vybíralo znova ... ale bojím se, že ke konci, když by mi již zbývala např. 3 čísla ze 40, tak by to pak trvalo strašně dlouho než by to náhodně trefilo ta čísla, která ještě nebyla vybrána ... nešlo by to nějak jinak chytřeji efektivněji? :-)

předem díky
ninja
Profil
Honzaaa: inicializuj si pole s polozky 1-40 a pak pouzij php funkci shuffle()
randy
Profil *
No myslim ze krasny priklad na tohle mas hned v manualu, pouzijes funkci shuffle().

<?php
$numbers = range(1, 40);

srand((float)microtime() * 1000000);
shuffle($numbers);

foreach($numbers as $number)
{
  echo "$number ";
}
?>
peta
Profil
ten manual:
cz.php.net/shuffle
Honzaaa
Profil *
díky moc všem

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0