Véletlenszerű elem kiválasztása változó valószínűséggel. Hogyan tudom ezt megcsinálni?
Szóval amit szeretnék, hogy van egy tömb, vagy lista elemekkel. Egy példa:
Elem: Rozsdás kard, valószínűség: 8
Elem: Régi páncél, valószínűség: 3
Elem: Varázspálca, valószínűség: 1
A példámban 3 elem van, ennél persze sokkal többet szeretnék, és az lenne a célom, hogy bizonyos elemek kiválasztásának esélye magasabb, míg másoké alacsonyabb legyen. A példámban a rozsdás kardra kellene, hogy essen a legtöbb esetben a választás. Ezt így elméletben még le is vezetem, de nem igazán látom, hogy ez programozásban hogy nézne ki.
No, azért gondolkozom rajta tovább, de nem biztos, hogy rájövök, a neten talált példákat meg nem igazán értem még.
r=random() // 0 és 1 közötti érték
ha (r < 0.75) akkor esemény();
Ekkor az esemény() 75%-os valószínűséggel hívódik meg.
Összeadod a valószínűségeket: totalProb=8+3+1=12
Generálsz egy véletlen egész számot 1 és totalProb között.
ha 1..8: kard, ha 9..11: páncél, ha 12: varázspálca.
Ha kellően rugalmas megoldást akarsz, akkor az elemek és a valószínűségeket tömbben/listában tartod, a kiválasztó eljárást pedig paraméterezhetővé teszed.
Kaptál rá 2 jó választ, minek emelted ki?
Mi a gond velük? Ezekhez nincs mit hozzátenni, megválaszolták a kérdést.
Gondolkodni kéne. A programozás egy kreatív tevékenység, az hogy megtanulok egy prog. nyelvet attól még nem tudok programozni. Kreatív gondolkodás nélkül lehetetlen.
Még ha akármilyen kezdő vagy legalább írtál volna még kérdést amiért kiemelted.
#1 vagyok
A pirospacsis nyugodtan kiléphet a sunyiárnyékból és cáfolhat. :)
Tudod sok itt a 'szakértő'. Annak idején nekem írták ezt:
'Itt ne várj komoly hozzáállást. Ez nem egy szakmai fórum.' Sajnos egyre inkább beigazolódni látszik.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!