
Náhodná funkce s pravděpodobností v PHP
Dalo by se pomocí funkce rand, nebo třeba i jinak, náhodně vybrat například: 3 prvky z 50, a každý z těch 50 by měl určenou pravděpodbnost, že ho to vybere.
Pomocí rand asi ne. Můžeš si udělat pole s jednotlivejma prvkama a rozsahem jejich pravděpodobností.
jestli to bude pole nebo tabulka v mysql je mi jedno, mě by zajímal ten mechanismus pravděpodbnosti
Vygeneruješ náhodné číslo a koukneš se do pole, k jakému prvku patří.
to ano ale potřeboval bych aby třeba 1/3 prvků měla 10% šanci na vylosovnání
takovu "šanci" bych potřeboval u každého prvku, a u každého třeba jinou 1-20%
A v čem je problém? Prostě to takhle dáš do tabulky. Příklad:
1 .. 0,00-0,09
2 .. 0,10-0,19
3 .. 0,20-0,22
atd.
tak to mam v tabulce a ted jakou funkcí náhodně vyberu 3 z 50 tak aby to odpovídalo pravděpodobnosti která je tam uvedená ?
Vygeneruješ si náhodný číslo a pak se podíváš do tabulky, ke které hodnotě to patří.
Neber to nijak útočně, ale ty by jsi asi neměl programovat.
Neber si to osobně ale nepochopil si co sem chtěl a už nevim jak jinak to vysvětlit.
On to pochopil len ty stale nechapes ze ked chces vacsiu pravdepodobnost tak tomu prirad vacsi "usek" napriklad. Da sa to riesit viac sposobmi, matematickymi prepoctami namiesto tabulky, atd. Ked nechapes toto tak uz fakt neviem ze jak chces programovat zlozitejsie veci.
1: 0-0,01
2: 0,01-0,02
3: 0,02-1
cislo 3 ma vacsiu pravdepodobnost ako 1,2
Asi sem chtěl vidět něco jinýho a heldal složitost kde neni.
Omlouvám se, a děkuji.
No ved preto
takze mozes dalej programovat
Inac to riesenie samozrejme predpoklada ze ta funkcia rand ma rovnomerne rozdelenie pravdepodobnosti (urcite ma).
Tip: Sucet tych pravdepodobnosti kazdeho cisla musi byt 100%, a teda kazde % pravdepodobnosti bude znamenat rozsah 0,01 v tabulke. Pokial to mas rozdelene medzi tie cisla nejak logicky, je jednoduchsie to riesi prepoctom a nie tabulkou.
P.S. pozeram ze fcia rand v PHP vracia cele cisla a nie desatinne ako v C, takze v PHP si zvol rozsah napr. 0-99 (vcetne oboch) a budes to mat po percentach.
Místo tabulky lze též použít také pole, IMHO by to bylo jednodušší
Mas nejak moc rad cislo 21? Lebo rozsah 0-20 je 21 cisel a rozmyslat v 1/21-tinach mi pride dost divne. Skor pouzit rozsah 0-99. Len neviem ako dobre PHP rand robi tie okrajove cisla (0 a 99), ci maju rovnaku pravdepodobnost ako tie ostatne. Toto je v PHP dost dementne (v C je to rozumnejsie). K tomu by bolo treba precitat si nejaky poriadny help k PHP, alebo pouzit rozsah 0-999999 a vydelit to 10000, potom budu mat vsetky rovnaku pravdepodobnost.
což že to bude celočíselné vim :)
mě se spíš než pole bude hodit tabulka, budu tam mít hodně kritérií a v tabulce to bude prehlednejsi