| | |
| Stránka: 1 z 1
| [ Príspevkov: 5 ] | |
Autor | Správa |
---|
Registrovaný: 02.09.08 Prihlásený: 23.01.13 Príspevky: 81 Témy: 17 | Napísal Roko: 25.11.2010 10:32 | |
|
ahojte, potrebujem si spravit skript, ktory sa bude rozhodovat, ci si vybrat moznost 1, moznost 2 az moznost n na zaklade nahody, ktoru chcem trosku ovplyvnit.
napr.
moznost 1 - 50% sanca
moznost 2 - 30% sanca
moznost 3 - 20% sanca
rozmyslal som, ako to spravit, aby bola nahodne vybrata jedna moznost na zaklade urcitej sance, ze bude vybrata prave ta jedna moznost. zatial ma napadlo len nieco take:
Kód: <?php $number = mt_rand(0, 1000)
if($number < 500) { $moznost = '1'; }
else if($number < 500 AND $number > 800) { $moznost = '2'; }
else if($number > 800) { $moznost = '3'; }
?>
napada vas nejaka ina moznost, ako spravit pravdepodobnost? bol by som rad, keby som mal na vyber z viac moznosti
dakujem
roko
|
|
Registrovaný: 27.07.07 Príspevky: 3948 Témy: 51 Bydlisko: Bratislava |
neviem, ci by to bolo vyhovujuce, ale dalo by sa vygenerovat pole, kde by bolo pomiesanych 5 jednotiek, 3 dvojky a 2 trojky, a na zaver by stacilo vybrat jeden prvok...
_________________ NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE |
|
Registrovaný: 29.10.08 Prihlásený: 30.07.12 Príspevky: 933 Témy: 2 | Napísal coldak: 25.11.2010 10:51 | |
|
Roko píše: Kód: else if($number < 500 AND $number > 800) { $moznost = '2'; }
pekna finta ako moznosti 2 nedat ziadnu sancu
|
|
Registrovaný: 02.09.08 Prihlásený: 23.01.13 Príspevky: 81 Témy: 17 | Napísal autor témy Roko: 25.11.2010 10:56 | |
|
coldak diki za upozornenie
stenley, vidis, to ma nenapadlo.
aby som doplnil, ten ukon kde sa bude vyberat jedna z moznosti sa ma opakovat cca. 200 az 250 krat v jednom cykle for a ten sa zas bude opakovat x krat. ci tam pouzijem cyklus for je este tiez otazne nakolko mi ide o rychlost prejdenia celeho skriptu. preto potrebujem cim viac moznosti, aby som si vedel otestovat kazdu jednu a aby som si vedel vybrat tu najrychlejsiu.
|
|
Registrovaný: 06.08.10 Prihlásený: 26.11.10 Príspevky: 5 Témy: 0 | Napísal awase: 27.11.2010 0:21 | |
|
Najrychlejsi je urcite tvoj povodny navrh, az nato ze zbytocne vyberas nahodne cislo do 1000 ked ti staci do 10. Takze to podel 100.
Plus nezabudni ze mas vynechane 2 cisla kvoli ostrosti. Ked ti teda mt_rand() vrati 500 alebo 800 $moznost sa nenastavi lebo neprejde ani jednym ifom.
Kód: <?php $number = mt_rand(1, 10)
if ($number <= 5) { $moznost = '1'; } elseif($number > 5 && $number <= 8) { $moznost = '2'; } elseif($number > 8) { $moznost = '3'; } ?>
|
|
| Stránka: 1 z 1
| [ Príspevkov: 5 ] | |
| Nemôžete zakladať nové témy v tomto fóre Nemôžete odpovedať na témy v tomto fóre Nemôžete upravovať svoje príspevky v tomto fóre Nemôžete mazať svoje príspevky v tomto fóre
|
|