Generování náhodných 5ti čísel bez duplicity
7 příspěvků
Archiv diskusního fóra
Fórum je uzavřené a slouží pouze ke čtení. Některé informace mohou být zastaralé.
-
Zdravím všechny! Nevím zda s tímhle máte někdo zkušenosti, ale jak byste chtěli vygenerovat 5 náhodných čísel dejme tomu od 1 do 20 tak, aby se navzájem neshodovali? Tzn., že pokud použiju pět proměnných, kde pomocí rand(1, 20) dostanu např.: 16 * 7 * 10 * 19 * 7 ... jakým způsobem docílit toho, aby se neshodovali třeba ty dvě sedmičky? Díky za jakoukoliv sebemenší radu!
-
$cisla=array(); $duplicita=false; for($i=0;$i<5;$i++) { $temp=rand(1,20); for($j=0;$j<count($cisla);$j++) { if($temp==$cisla[$j]) $duplicita=true; } $cisla[$i]=$temp; if($duplicita) $i--; $duplicita=false; } Nezkoušel jsem to. Snad je poznat, co jsem měl při psaní tohoto kódu za lubem.
-
<?php function nahodneheslo ( ) { // Pokud nesmí tvořit náhodné číslo nějaké znaky, smažte je (pokud zde jsou) z následujícího řádku. $moznosti= array("1","2","3","4","5","6","7","8","9","0"); //Počet míst náhodného hesla $mista="5"; $heslo=""; for ($i=0 ;$i<=$mista-1 ;$i++) { $nahoda=rand(0, count($moznosti)-1); $heslo.=$moznosti[$nahoda]; } echo "Náhodné heslo: $heslo"; } nahodneheslo ( ); ?> skus uvidis...
-
A jo.. sem si spatne precetl otazku... Tak nic..
-
# Já bych použil jiný postup: # vygenerujeme pole x čísel for($i=1;$i<=20;$i++) $pole[$i] = $i; # inicializujeme náhodu srand((double) microtime() * 10000000); # vytáhneme náhodných y prvků - pozor, funkce vrací klíče, ne hodnoty pole $nahodna = array_rand($pole, 5); # Toť vše
-
Du hast recht! Byl jsem zaslepen funkcí rand()!
-
Děkuji všem, převážně tobě, Nípale!