[ Príspevkov: 5 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 02.09.08
Prihlásený: 23.01.13
Príspevky: 81
Témy: 17 | 17
NapísalOffline : 25.11.2010 10:32 | pravdepodobnost

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 :D

dakujem
roko


Offline

Správca fóra
Správca fóra
pravdepodobnost

Registrovaný: 27.07.07
Príspevky: 3948
Témy: 51 | 51
Bydlisko: Bratislava
NapísalOffline : 25.11.2010 10:47 | pravdepodobnost

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
Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 29.10.08
Prihlásený: 30.07.12
Príspevky: 933
Témy: 2 | 2
NapísalOffline : 25.11.2010 10:51 | pravdepodobnost

Roko píše:
Kód:
else if($number < 500 AND $number > 800) {
$moznost = '2';
}


pekna finta ako moznosti 2 nedat ziadnu sancu :)


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 02.09.08
Prihlásený: 23.01.13
Príspevky: 81
Témy: 17 | 17
Napísal autor témyOffline : 25.11.2010 10:56 | pravdepodobnost

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.


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 06.08.10
Prihlásený: 26.11.10
Príspevky: 5
Témy: 0 | 0
NapísalOffline : 27.11.2010 0:21 | pravdepodobnost

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';
}
?>



 [ Príspevkov: 5 ] 


pravdepodobnost




© 2005 - 2024 PCforum, edited by JanoF