Facharbeit Kniffel < Stochastik < Oberstufe < Schule < Mathe < Vorhilfe
|
Status: |
(Frage) überfällig | Datum: | 13:52 Di 16.10.2007 | Autor: | KK73 |
Zu meinen bisherigen Stand:
Grundsätzlich schreibe ich das ganze in Python, eine modernere Programmiersprache und habe eigentlich noch keinerlei Erfahrungen mit dem Programmieren an sich. Trotzdem ist es mir gelungen mit Hilfe eines Freundes ein Grundgerüst zu erstellen und meine erste Engine zu programmieren.
Das Prinzip:
Die Engine erhält einen Wurf, z.B. [2;3;1;2;6]
Dieser wird sortiert [1;2;2;3;6] und dann in 2 so zerlegt, dass alle Möglichkeiten der Teilung durchgeführt werden [];[1];[2];[3];[6];[1;2];
.;[1;2;2;3;6].
Dann wird nacheinander jede dieser Möglichkeiten durchgespielt, also z.B. wird der [3]
Eine [1;1;1;1] zugegeben [3;1;1;1;1], sortiert [1;1;1;1;3] und dann geschaut wo dieser Wurf in der aktuellen Spielsituation noch freien Eintragsfelder die meiste Punktzahl erhält.
In diesem Fall 7.
Dann kommt eine [1;1;1;2] hinzu, (8Punkte) und dieses Ergebnis wird dazugezählt (15 Punkte gesamt)
Wenn wir bei [2;3;4;5] angekommen sind, werden natürlich die 40 Punkte der großen Strasse addiert, sofern diese noch frei ist.
Bei [6;6;6;6] angekommen wird das Ergebnis mit der Anzahl der bereits vorhandenen Würfel*6 multipliziert, [3] -> 1 Würfel.
(Dieses Vorgehen liegt an Python, da sich nicht so einfach mit Brüchen rechnen lässt, effektiv teilt man durch die noch zusätzlich benötigten Würfen*6, ich hingegen multipliziere das ganze dann mit [mm] 5^{6}, [/mm] wodurch die Brüche verschwinden)
Dadurch erhalte ich eine Punktewahrscheinlichkeit für die einzelne Teilung [3] und kann die Teilung mit der höchsten Punktewahrscheinlichkeit zurückgeben, mit Zufallswürfeln auffüllen und das Spiel beginnt von neuem.
Die ganze Methode ist brute-force, aber bei meiner alten Engine dauert ein Spiel ca. eine Minute, die neue zickt gerade noch etwas, ist aber deutlich schneller, also alles in allen im erträglichen Bereich.
Zu den eigentlichen Fragen:
1)
Wie bekomme ich in meine Punktewahrscheinlichkeit die 35 Bonuspunkte, die man für 63 Punkte aus den Feldern 1 mit 6 erhält?
Man könnte eine Funktion schreiben, die einen Wurf prüft, ob er die Wahrscheinlichkeit die 63 Punkte zu erreichen, schmälert oder nicht.
Aber wie binde ich diese dann in die Punktewahrscheinlichkeit ein?
2)
Es geht nach den 3 Versuchen immer um das Eintragen im richtigen Feld. Mein erster Versuch war, das Feld zu nehmen, das die meisten Punkte lieferte. Dabei war die Chance fast immer die erste Wahl, was nicht sinnvoll ist.
Im zweiten Versuch habe ich die möglichen Punkte durch die Wahrscheinlichkeit, diesen Wurf überhaupt zu erreichen, geteilt.
Ist das die richtige Idee oder muss ich das ganz anders machen?
Ich hoffe, das war soweit verständlich
Viele Grüße
Ralf
Ich habe diese Frage in keinem Forum auf anderen Internetseiten gestellt.
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 14:20 Mi 24.10.2007 | Autor: | matux |
$MATUXTEXT(ueberfaellige_frage)
|
|
|
|