Autor | Zpráva | ||
---|---|---|---|
Honzaaa Profil * |
#1 · Zasláno: 21. 1. 2008, 15:50:18
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 |
#2 · Zasláno: 21. 1. 2008, 15:55:22
Honzaaa: inicializuj si pole s polozky 1-40 a pak pouzij php funkci shuffle()
|
||
randy Profil * |
#3 · Zasláno: 21. 1. 2008, 16:00:11
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 |
#4 · Zasláno: 21. 1. 2008, 16:12:23
ten manual:
cz.php.net/shuffle |
||
Honzaaa Profil * |
#5 · Zasláno: 21. 1. 2008, 17:00:30
díky moc všem
|
||
Časová prodleva: 18 let
|
0