-
Üdv.
Olyan kérdésem volna, hogy lehet-e olyat csinálni, hogy van mondjuk egy /xy parancsom és abban 2 féle lefutási verzió szerepel.
Na most mondjuk az elsõ verziónak 70% az esélye, hogy lefut a másodiknak értelemszerûen 30%.
Tehát százalékos alapon dönt véletlenszerûen, hogy melyik fut le.
Remélem érthetõ a dolog, még elég kezdõ vagyok.
Elõre is köszönöm.
-
new verzio1 = random(100);
new verzio2 = 100-verzio1;
-
Mint mondtam elég kezdõ vagyok, ezt a kódrészletet nem teljesen értem.
Egyébként köszi, hogy próbálsz segíteni. ^-^
-
new verzio1 = random(100); // Egy random számot generál, maximum 100-ig, amelyet a verzio1 változóba tárol el - pl. ha 70-et generál, vehetjük 70%-nak
new verzio2 = 100 - verzio1; // Kivonja a random számot a 100-ból, amit a verzio2 változóba tárol el - ha 70-et generált az elõbbi, akkor kizárásos alapon ezzel a kis 100-ból való kivonással a verzio2 változó értéke 30 lesz, amit vehetünk 30%-nak
Erre írta BoOy:
Na most mondjuk az elsõ verziónak 70% az esélye, hogy lefut a másodiknak értelemszerûen 30%.[/quote]
De igazi %-ot nem lehet generálni, fõleg nem véletlenszerûen.
-
Értem.
Nekem úgy kellene, hogy megadom, hogy az elsõ 70% a második pedig 30%.
Tehát nem véletlenszerûen x % hanem általam megadott.
Ilyet nem lehet? :-[
-
if(random(100)<70) elso(); // generál egy számot 0-99-ig és egybõl ellenõrzi is, hogy beesik-e a 70%-ba
else masodik(); // ide pedig a maradék eset..
-
if(random(100)<70) elso(); // generál egy számot 0-99-ig és egybõl ellenõrzi is, hogy beesik-e a 70%-ba
else masodik(); // ide pedig a maradék eset..
Hmmm... Ez remek, ezer köszönet! :thumbsup:
Adnék +t de sajnos nincs ilyen funkcióm :D
-
Habár ki lehetett következtetni, hogy mit is szeretnél, de ha egy kicsit pontosabban fogalmaztál volna, akkor rögtön rájövünk, hogy neked egy elágazásra van szükséged, amelynek az igaz ága akkor fut le, ha egy 101-nél kisebb random szám kisebb, mint 70. Egyébként érdemes blokkokat használni, mert ha sok mindent akarsz lefuttatni a feltétel ágaiban, túl hosszú lesz a sorod és a compiler nem fogja tudni lefordítani azt.
if(radnom(101) < 70)
{
// Ha 70-nél kisebb
}
else
{
// Ha 70, vagy 70-nél nagyobb
}
[mod]Viszont ha jól látom, meg van oldva, így zárok. Legközelebb zárj magadtól.[/mod]
-
Üdv.
Olyan kérdésem volna, hogy lehet-e olyat csinálni, hogy van mondjuk egy /xy parancsom és abban 2 féle lefutási verzió szerepel.
Na most mondjuk az elsõ verziónak 70% az esélye, hogy lefut a másodiknak értelemszerûen 30%.
Tehát százalékos alapon dönt véletlenszerûen, hogy melyik fut le.
Remélem érthetõ a dolog, még elég kezdõ vagyok.
Elõre is köszönöm.
-
new verzio1 = random(100);
new verzio2 = 100-verzio1;
-
Mint mondtam elég kezdõ vagyok, ezt a kódrészletet nem teljesen értem.
Egyébként köszi, hogy próbálsz segíteni. ^-^
-
new verzio1 = random(100); // Egy random számot generál, maximum 100-ig, amelyet a verzio1 változóba tárol el - pl. ha 70-et generál, vehetjük 70%-nak
new verzio2 = 100 - verzio1; // Kivonja a random számot a 100-ból, amit a verzio2 változóba tárol el - ha 70-et generált az elõbbi, akkor kizárásos alapon ezzel a kis 100-ból való kivonással a verzio2 változó értéke 30 lesz, amit vehetünk 30%-nak
Erre írta BoOy:
Na most mondjuk az elsõ verziónak 70% az esélye, hogy lefut a másodiknak értelemszerûen 30%.[/quote]
De igazi %-ot nem lehet generálni, fõleg nem véletlenszerûen.
-
Értem.
Nekem úgy kellene, hogy megadom, hogy az elsõ 70% a második pedig 30%.
Tehát nem véletlenszerûen x % hanem általam megadott.
Ilyet nem lehet? :-[
-
if(random(100)<70) elso(); // generál egy számot 0-99-ig és egybõl ellenõrzi is, hogy beesik-e a 70%-ba
else masodik(); // ide pedig a maradék eset..
-
if(random(100)<70) elso(); // generál egy számot 0-99-ig és egybõl ellenõrzi is, hogy beesik-e a 70%-ba
else masodik(); // ide pedig a maradék eset..
Hmmm... Ez remek, ezer köszönet! :thumbsup:
Adnék +t de sajnos nincs ilyen funkcióm :D
-
Habár ki lehetett következtetni, hogy mit is szeretnél, de ha egy kicsit pontosabban fogalmaztál volna, akkor rögtön rájövünk, hogy neked egy elágazásra van szükséged, amelynek az igaz ága akkor fut le, ha egy 101-nél kisebb random szám kisebb, mint 70. Egyébként érdemes blokkokat használni, mert ha sok mindent akarsz lefuttatni a feltétel ágaiban, túl hosszú lesz a sorod és a compiler nem fogja tudni lefordítani azt.
if(radnom(101) < 70)
{
// Ha 70-nél kisebb
}
else
{
// Ha 70, vagy 70-nél nagyobb
}
[mod]Viszont ha jól látom, meg van oldva, így zárok. Legközelebb zárj magadtól.[/mod]