Tanelorn.net

Pen & Paper - Rollenspiel => Pen & Paper - Rollenspiel- & Weltenbau => Thema gestartet von: Timo am 23.01.2011 | 17:58

Titel: [CAs Heartbreaker] Würfelmechanik, brauche Wahrscheinlichkeiten berechnet
Beitrag von: Timo am 23.01.2011 | 17:58
Ich grübel gerade an den passenden SChwierigkeitsgraden für mein System, scheitere aber gerade an "simpler" Mathematik.

Mein Problem, 1W6 hat jeweils 16,666...% Chance eine Nummer zu erhalten, also wenn die theoretischen Mindestwürfe 1-6 wären, hat man mit einem W6 Chancen von:

1=100%
2=83,34%
3=...
...
6=16,66%

Mein Problem nun, wie berechne ich die Wahrscheinlichkeiten für Mindestwürfe 1-24, bei:
2W6, 3W6, 4W6

Titel: Re: [CAs Heartbreaker] Würfelmechanik, brauche Wahrscheinlichkeiten berechnet
Beitrag von: Eulenspiegel am 23.01.2011 | 18:09
Die Berechnung per Hand ist ab 3W6 recht aufwendig.

Aber die Tabelle mit den Ergebnissen findest du hier:
- 2W6 (http://www.wiki-aventurica.de/index.php/Summen_bei_Wurf_von_2W6) bzw. 2W6 (http://www.siegen-spielt.de/index.php?topic=30.0)
- 3W6 (http://www.wiki-aventurica.de/index.php/Summen_bei_Wurf_von_3W6)

Allgemein, wenn du es ohne Tabelle ausrechnen willst:
Zähle, wieviele Möglichkeiten es gibt, ein geeignetes Ergebnis zu erhalten. (Also eine Zahl größer oder gleich deinem Mindestwurf) und dividiere es durch die Gesamtzahl der Möglichkeiten.

Beispiel:
Wir wollen die Wahrscheinlichkeit für den Mindestwurf von 11 bei 2W6 berechnen.
Bei 2W6 gibt es insgesamt 6² = 36 Möglichkeiten.
Und es gibt 3 Möglichkeiten, 11 oder höher zu würfeln:
- 1. Wurf: 5 und 2. Wurf: 6
- 1. Wurf: 6 und 2. Wurf: 5
- 1. Wurf: 6 und 2. Wurf: 6

Das heißt, wir haben eine Wahrscheinlichkeit von 3/36 = 1/12 = 8,3%, 11 oder höher zu würfeln.
Titel: Re: [CAs Heartbreaker] Würfelmechanik, brauche Wahrscheinlichkeiten berechnet
Beitrag von: ArneBab am 24.01.2011 | 01:18
Mal ganz naiv (und daher mit minimalem Programmieraufwand) geschrieben:

#!/usr/bin/env python3

"""Wahrscheinlichkeiten für Mindestwürfe in einem Pool-System"""

augenzahlen = [1, 2, 3, 4, 5, 6]
ergebnis = {}
max_würfel = 5
max_mindestwurf = 24

for anzahl_würfel in range(max_würfel):
    ergebnis[anzahl_würfel+1] = []
    # erster würfel
    ergebnis[anzahl_würfel+1].extend(augenzahlen)
    for würfel in range(anzahl_würfel):
        erg = []
        for i in ergebnis[anzahl_würfel+1]:
            for j in augenzahlen:
                erg.append(i+j)
        ergebnis[anzahl_würfel+1] = erg
       

erg = []
for mw in range(max_mindestwurf):
    for würfel in ergebnis:
        erg.append(((würfel, mw+1), len([i for i in ergebnis[würfel] if i >= mw+1]) / len(ergebnis[würfel])))

erg.sort()

for würfel_mw, Wahrscheinlichkeit in erg:
    print (str(würfel_mw[0]) + "," + str(würfel_mw[1]) + ":", Wahrscheinlichkeit)

Ergebnis (bitte gegenprüfen! Ich habe das nur schnell runterprogrammiert und es könnten Fehler drin sein!):

(Anzahl Würfel, Mindestwurf: Wahrscheinlichkeit)
1,1: 1.0
1,2: 0.833333333333
1,3: 0.666666666667
1,4: 0.5
1,5: 0.333333333333
1,6: 0.166666666667
1,7: 0.0
1,8: 0.0
1,9: 0.0
1,10: 0.0
1,11: 0.0
1,12: 0.0
1,13: 0.0
1,14: 0.0
1,15: 0.0
1,16: 0.0
1,17: 0.0
1,18: 0.0
1,19: 0.0
1,20: 0.0
1,21: 0.0
1,22: 0.0
1,23: 0.0
1,24: 0.0
2,1: 1.0
2,2: 1.0
2,3: 0.972222222222
2,4: 0.916666666667
2,5: 0.833333333333
2,6: 0.722222222222
2,7: 0.583333333333
2,8: 0.416666666667
2,9: 0.277777777778
2,10: 0.166666666667
2,11: 0.0833333333333
2,12: 0.0277777777778
2,13: 0.0
2,14: 0.0
2,15: 0.0
2,16: 0.0
2,17: 0.0
2,18: 0.0
2,19: 0.0
2,20: 0.0
2,21: 0.0
2,22: 0.0
2,23: 0.0
2,24: 0.0
3,1: 1.0
3,2: 1.0
3,3: 1.0
3,4: 0.99537037037
3,5: 0.981481481481
3,6: 0.953703703704
3,7: 0.907407407407
3,8: 0.837962962963
3,9: 0.740740740741
3,10: 0.625
3,11: 0.5
3,12: 0.375
3,13: 0.259259259259
3,14: 0.162037037037
3,15: 0.0925925925926
3,16: 0.0462962962963
3,17: 0.0185185185185
3,18: 0.00462962962963
3,19: 0.0
3,20: 0.0
3,21: 0.0
3,22: 0.0
3,23: 0.0
3,24: 0.0
4,1: 1.0
4,2: 1.0
4,3: 1.0
4,4: 1.0
4,5: 0.999228395062
4,6: 0.996141975309
4,7: 0.988425925926
4,8: 0.97299382716
4,9: 0.945987654321
4,10: 0.902777777778
4,11: 0.841049382716
4,12: 0.760802469136
4,13: 0.664351851852
4,14: 0.556327160494
4,15: 0.443672839506
4,16: 0.335648148148
4,17: 0.239197530864
4,18: 0.158950617284
4,19: 0.0972222222222
4,20: 0.054012345679
4,21: 0.0270061728395
4,22: 0.0115740740741
4,23: 0.00385802469136
4,24: 0.000771604938272
5,1: 1.0
5,2: 1.0
5,3: 1.0
5,4: 1.0
5,5: 1.0
5,6: 0.999871399177
5,7: 0.999228395062
5,8: 0.997299382716
5,9: 0.992798353909
5,10: 0.983796296296
5,11: 0.967592592593
5,12: 0.941229423868
5,13: 0.90200617284
5,14: 0.84799382716
5,15: 0.778549382716
5,16: 0.694830246914
5,17: 0.600308641975
5,18: 0.5
5,19: 0.399691358025
5,20: 0.305169753086
5,21: 0.221450617284
5,22: 0.15200617284
5,23: 0.0979938271605
5,24: 0.0587705761317


Das Skript ist im Repo des 1w6-Systems verfügbar: https://bitbucket.org/ArneBab/1w6/src/tip/sonstiges/Skripte/pool_mindestwuerfe.py

PS: Ja, das wäre mit einer Binomialverteilung viel schneller. Wollte ich aber grade nicht machen; hatte ich schon im Spielfähig-Skript :) → https://bitbucket.org/ArneBab/1w6/src/tip/sonstiges/Skripte/spielfaehig.py
Titel: Re: [CAs Heartbreaker] Würfelmechanik, brauche Wahrscheinlichkeiten berechnet
Beitrag von: ArneBab am 24.01.2011 | 01:29
Da ich die Daten gerade schon da hatte und schon länger ausprobieren kann, wie ich nur ausgewählte Teile von Dateien plotten kann:



[gelöscht durch Administrator]
Titel: Re: [CAs Heartbreaker] Würfelmechanik, brauche Wahrscheinlichkeiten berechnet
Beitrag von: killedcat am 24.01.2011 | 07:58
Nehmt einfach Anydice
http://anydice.com/program/4f2 (http://anydice.com/program/4f2)

Man muss sich ein wenig einarbeiten, aber dann gehen auch explodierende Würfel etc. Einfach auf "at least" klicken und die Chancen für mindestwürfe sind zu sehen. Lässt sich auch graphisch darstellen.
Titel: Re: [CAs Heartbreaker] Würfelmechanik, brauche Wahrscheinlichkeiten berechnet
Beitrag von: ArneBab am 24.01.2011 | 08:39
anydice sieht cool aus! Danke für den Link!
Titel: Re: [CAs Heartbreaker] Würfelmechanik, brauche Wahrscheinlichkeiten berechnet
Beitrag von: Timo am 24.01.2011 | 14:38
@killedcat
danke, das hilft sehr