generování náh. čísel
13 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é.
-
ahoj .. potreboval bych prosim poradit .. takze muj problem se toci okolo generovani nahodneho cisla: potreboval bych vytvořit něco co by vyhodilo náh. č. v určitém rozmezí a s podmínkou "ne tyto číla". Takže vlastně : Vygeneruj náhodné číslo v rozmezí 1 - 9, nesmíš vygenerovat např. 2,5,6 .. fakt nevim jak to mam napsat :-) ale budou tu urcite zkusenejsi :-) tak dekuji
-
http://mirrors.inway.cz/manual/cs/function.rand.php a pak proste udelas cyklus, kde v podmince budes kontrolovat, co se ti vygenerovalo, a podle potreby budes cyklit tak douho, az se vygeneruje povolene cislo. jednoduche, ze?
-
while($i!=2 or $i!=5 or $i!=6) { $i = rand(1, 9); } ? takhle?
-
jojo .. aleproblém je v tom , že já to potřebuju ty nepovolený číslice dostat do jedné proměnné .. takže takhle: $nepovolene = 256; .. Odpovidam na Tonik: tak jak navrhujes to jsem udělal : function generator($nep_cisla) { $nahodicka = nahodne_cislo(1000000); if(ereg($nahodicka, $nep_cisla)): return generator($nahoda, $neg_cisla); else: return $nahodicka; endif; } ale je to holí zoufalství, když chci čísla na stránce generovat při mé potřebě 64x ..
-
$nepovolene=array(2,5,6); $cislo=rand(1,10); while (in_array($cislo,$nepovolene)) $cislo=rand(1,10); PS: psano po pameti, ale melo by to fungovat
-
tak to jsem taky zkusil .. :-( ale problem je v tom, že nemůžu nijak ovlivnit proměnnou $nepovolene .. $nepovolene je prostě = 256478 .. to znamená že tyhlety čísla nemůžu narvat do pole když jsou takhle v sobe :-(
-
explode a array;) $a = explode('', $cisla); $b=array(); while($i!=count($a)) { $b[$i] = $a[$i]; } hmm co ted?
-
este tam chybi $i++ $a = explode('', $cisla); $b=array(); while($i!=count($a)) { $b[$i] = $a[$i]; $i++; }
-
no a na co je tam to kopirovanie z a do b? :) function rand_zakazane ($zakazane, $od, $do) { $zakazane = explode('', $zakazane); do { $i = rand($od, $do); } while (in_array($i, $zakazane)); return $i; } echo rand_zakazane(123, 1, 9); snad to pojde
-
jojo přesně podle toho posledního si to představuju tak je to fakt dobrý :-) ale s funkcí explode nemam zkušenosti, ani manuál mi nic neřiká .. když to zkusim, napíše mi to : Warning: Empty delimiter in c:\apache\htdocs\math\index.php on line 3 Warning: Wrong datatype for second argument in call to in_array in c:\apache\htdocs\math\index.php on line 6 což tomu nerozimim kde je chyba . :-) díkys
-
function rand_zakazane ($zakazane, $od, $do) { $zakazane = ' '.(string)$zakazane; do { $i = rand($od, $do); } while(strpos($zakazane, (string)$i)); return $i; } moc se mi tam nelibi ten radek $zakazane = ' '.(string)$zakazane;, ale nic lepsiho jsem uz nevymyslel...
-
jupííííííí fachá to! dííky ti moc :-)
-
hm, a co to tak udělat obráceně? Teda do pole si dát čísla, která vybrat můžu a pak náhodně generovat index. Napadá mě, co kdyby nějaký stroj používal hw generátor náhodných čísel (to existuje) a ten se mu pokazil a začal generovat pořád to samé číslo a zrovna to by se ti nelíbilo. Tak by se ti to zacyklilo a nevěděl bys proč. Je to podle toho, kolik by se jich generovalo. Napadla mě dvě řešení: manuálně nastrkat čísla, která mohou být vygenerova a pak vygenerovat index od 0-count(pole) nebo pro hodně prvků vygenerovat pole od x do y, otočit klíče a hodnoty, vyhodit položky, které nechci, znovu otočit klíče a hodnoty, předělat klíče (třeba přes array_values() ) a zase vygenerovat náhodný klíč pole a vrátit hodnotu. .. to je dost náročné, co?