Ich denke da musst du schon etwas genauer beschreiben was du meinst. Inwiefern gleichmässig verteilt? Mir wird da der Bezug zwischen der Zufallszahl und der Forc-Abfrage nicht ganz klar.
Ich denke da musst du schon etwas genauer beschreiben was du meinst. Inwiefern gleichmässig verteilt? Mir wird da der Bezug zwischen der Zufallszahl und der Forc-Abfrage nicht ganz klar.
Okay... dann, beschreibe ich es halt genauer:
- Gesucht ist eine Folge von Event-Befehlen, die keine Fork-Condition enthält
- Vor dem Ausführen dieser Folge, hat die Variable "X" einen Wert von 1 bis 9
- Nachdem die Folge durchgelaufen ist, soll in der Variable "Y" ein zufälliger Wert größer gleich 0 und kleiner gleich [Wert von X] gespeichert sein.
- Die wahrscheinlichkeit für jeden dieser Werte soll gleich groß sein (gleichverteilte Zufallsverteilung)
- Beispiel: Wenn X den Wert 5 hat, soll in Variable Y ein zufälliger Wert aus dem Bereich 0 bis 5 abgespeichert werden, wobei jeder Wert die Wahrscheinlichkeit 1/6 (in einem von 6 Fällen) hat.
- Und bevor jemand doof fragt: Es kann davon ausgegangen werden, dass die Standard-Zufallszahl Funktion des RPG-Makers eine gleichverteilte Zufallszahl (des jeweiligen Bereiches) simuliert.
So deutlich genug?
Set Var: X + 1
Set Var: Y = 100
Set Var: Y % X
Dürfte verständlich sein und passen.
--"Diese Divs sind magische Wesen."
HTML = schwarze Magie?
Aber nach diesem Code wird y ja nicht zufällig bestimmt, sondern wird durch x gegeben. Wenn x z.B. 1 ist, dann ist y immer 0.
Ich hab noch mal darüber nachgedacht. Funktioniert das so?
y = RND(0-9)
x += 1
y % x
Geändert von Kelven (11.05.2008 um 00:41 Uhr)
Euer Ansatz ist richtig, allerdings sind eure Zufallszahlen nicht gleichverteilt, für alle Werte von X.
Beispiel zu Kelven's Lösung:
Angenommen X=3
Dann berechnen wir Y%4, wobei Y eine Zahl von 0 bis 9 ist.
Hier die Wahrscheinlichkeiten für die einzelnen Zahlen:
0 = 0%4 = 4%4 = 8%4 (3/10)
1 = 1%4 = 5%4 = 9%4 (3/10)
2 = 2%4 = 6%4 (2/10)
3 = 3%4 = 7%4 (2/10)
Wie man sieht, sind die Zahlen 0 und 1 in diesem Fall wahrscheinlicher als die Zahlen 2 und 3, damit ist die Zufallszahl nicht gleichverteilt.
Aber ihr seid schon nah dran![]()
Geändert von Lachsen (11.05.2008 um 12:51 Uhr)
Ich geb's auf. ^^" Vermutlich ist die Lösung einfacher als ich denke, aber ich hab im Internet jetzt so viel über lineare Kongruenzgeneratoren usw. gelesen, dass mir die Lust vergangen ist. Wenn man mit dem Maker eine Zufallszahl im Interval [0,1[ erzeugen könnte wäre die Lösung einfach, da hab ich was gefunden.
set: x = rand(0, 9)
set: x + 1
set: y = 2520
set: y % x
Es muss gleichverteilt sein, weil 2520 durch alles von
1-10 geteilt werden kann, also die Restwerte gleichmäßig
auftreten.
Oder?
--"Diese Divs sind magische Wesen."
HTML = schwarze Magie?
Ich bin jetzt verwirrt. Wenn X fest ist, dann denke man sich eben
den ersten Befehl weg. Der eigentliche Algorithmus fängt eh erst
ab Zeile 2 an.
Die Frage ist sehr verwirrend. Echt jetzt.
--"Diese Divs sind magische Wesen."
HTML = schwarze Magie?