Skip to content

Instantly share code, notes, and snippets.

@AdriDevelopsThings
Created September 12, 2020 22:28
Show Gist options
  • Save AdriDevelopsThings/70629946620d9165a8324e63983b3ea6 to your computer and use it in GitHub Desktop.
Save AdriDevelopsThings/70629946620d9165a8324e63983b3ea6 to your computer and use it in GitHub Desktop.
Diese Simulation soll zeigen, dass es Magie gibt. Okay, sie soll eigentlich nur darstellen weshalb bestimmte Studien und Statistiken auf Grund der "Regression zur Mitte" quatsch sind. Viel Spaß beim ausprobieren!
import matplotlib.pyplot as plt
import random
class Wuerfel:
def __init__(self, seiten):
self.seiten = seiten
def wuerfeln(self):
return random.choice(list(range(1, self.seiten + 1)))
class TestCase:
def __init__(self, wuerfel: Wuerfel):
self.wuerfel = wuerfel
self.mit_magie = []
self.ohne_magie = []
self.letztes_mit_magie = False
self.letztes = 3
def nimm_den_zauberstab_in_die_hand(self):
self.letztes_mit_magie = True
def add_case(self):
augenzahl = self.wuerfel.wuerfeln()
if self.letztes_mit_magie:
self.mit_magie.append(augenzahl - self.letztes)
else:
self.ohne_magie.append(augenzahl - self.letztes)
self.letztes_mit_magie = False
if augenzahl < 3:
self.nimm_den_zauberstab_in_die_hand()
self.letztes = augenzahl
def make_cases(self, count):
for i in range(count):
self.add_case()
def get_yerr(l, avg):
o = 0
if max(l) - avg > o:
o = max(l) - avg
if avg - min(l) > o:
o = avg - min(l)
return o
test_case = TestCase(Wuerfel(6))
if __name__ == "__main__":
test_case.make_cases(1000000)
xAxis = ["Ohne Magie", "Mit Magie"]
ohne_magie = sum(test_case.ohne_magie) / len(test_case.ohne_magie)
plt.bar(
"Ohne Magie",
sum(test_case.ohne_magie) / len(test_case.ohne_magie),
color="grey",
yerr=get_yerr(test_case.ohne_magie, ohne_magie),
)
mit_magie = sum(test_case.mit_magie) / len(test_case.mit_magie)
plt.bar(
"Mit Magie",
sum(test_case.mit_magie) / len(test_case.mit_magie),
color="red",
yerr=get_yerr(test_case.mit_magie, mit_magie),
)
plt.xlabel("Magie")
plt.ylabel("Differenz zwischen Würfen")
plt.show()
@AdriDevelopsThings
Copy link
Author

AdriDevelopsThings commented Sep 12, 2020

Graph
Hier kann man auch noch mal schön sehen, wie der Durchschnitt für die Differenz der letzten und der nächsten Augenzahl beim Nutzen eines Zauberstabes größer ist, als die normale.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment