Ich habe ein "Kampfsystem", der Angreifer hat eine Kampfstärke von z. 100 hat der Verteidiger eine Stärke von z.B. 75.
Aber ich sitze jetzt fest, ich kann nicht herausfinden, wie ich den Gewinner finden kann. Ich weiß, dass der Angreifer eine Chance von 25% hat zu verlieren, aber ich kann das Skript nicht verstehen.
Irgendwelche Ideen?
Extrahiere eine Zufallszahl zwischen 0...100
, oder wenn du 0...1
bevorzugst.
Dann überprüfe, ob diese Zahl niedriger als 75 ist. Wenn dies der Fall ist, hat der Angreifer gewonnen.
Dies hat eine sehr direkte wahrscheinlichkeitstheoretische Interpretation. Wenn Sie zufällig eine Zahl zwischen 0...100
extrahieren, haben Sie eine Wahrscheinlichkeit von 75%, dass die Zahl niedriger als 75 ist. Genau das, was Sie brauchen.
In diesem Fall brauchen Sie nur rand()
function.
Beachten Sie auch, was @ Marek vorgeschlagen hat, die Gewinnchance für den Angreifer kann viel niedriger als 75% sein. (Lesen Sie die Antwort von Marek, die auf eine Gewinnchance von 57% hinweist).
Das Problem tritt auf, wenn Sie komplexere Wahrscheinlichkeitsdichtefunktionen modellieren müssen, zum Beispiel:
In diesem Fall benötigen Sie ein komplexeres Modell wie zB eine gaußsche Mischung .
Mit einem Zufallszahlengenerator können Sie eine Funktion wie zum Beispiel:
erstellen %Vor% Dann können Sie die Funktion überall verwenden. Hinweis: mt_rand
erzeugt vermutlich bessere Zufallszahlen.
Tags und Links php random probability