Obsah fóra
PravidláRegistrovaťPrihlásenie




Odpovedať na tému [ 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
Príspevok NapísalOffline : 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 :D

dakujem
roko


Offline

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

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

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
Príspevok NapísalOffline : 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 :)


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
Príspevok Napísal autor témyOffline : 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.


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
Príspevok NapísalOffline : 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';
}
?>



Odpovedať na tému [ 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

Skočiť na:  

Powered by phpBB Jarvis © 2005 - 2024 PCforum, webhosting by WebSupport, secured by GeoTrust, edited by JanoF
Ako väčšina webových stránok aj my používame cookies. Zotrvaním na webovej stránke súhlasíte, že ich môžeme používať.
Všeobecné podmienky, spracovanie osobných údajov a pravidlá fóra