![]() |
[Mathematik] Wahrscheinlichkeitsrechnung für Karten
Ich hoffe hier mal auf den Querdenkerfaktor von Programmierern bei einem Wahrscheinlichkeitsproblem.
Angenommen: Ich habe ein Kartenspiel mit den Karten von 1 bis 13 und zwei Joker (zählen als 0). Ich ziehe am Anfang 5 Karten. Ich lege dann nacheinander eine beliebige Karte aus meiner Hand aus und ziehe eine neue nach. Frage: Wie groß ist die Wahrscheinlichkeit, dass ich eine Starthand (+ Nachziehkarten) erhalte, mit denen ich die Summe 26 legen kann? Die Joker mal ausgenommen, komme ich auf 2^13 = 8192 Kartenkombinationen. Dabei sind 782 <= 26 und 95 genau gleich 26. Im Schnitt bestehen die Lösungskombinationen aus 4,34 Karten (also ziehe ich im Spiel 4,34 Karten nach). Wie kriege ich jetzt raus, wieviele Kartenhände (oder mit welcher Wahrscheinlichkeit + Nachziehkarten) es gibt, mit denen ich eine 26er-Kombination (also Gewinnstrategie) haben kann? (am liebsten in Excel zum ausprobieren) Edit: Es ist gerade noch eben komplizierter als ich gedacht habe :mrgreen: |
AW: [Mathematik] Wahrscheinlichkeitsrechnung für Karten
Das klingt ja nach Kombinatorik. Welches Modell verwendest du denn, dass du auf die 2^13 Kobinationen kommst? Muss da nicht irgendwo auch mal die 5 auftauchen, wenn du doch 5 Karten auf der Hand hast?
Wie oft ziehst du nach? In deiner Beschreibung klingt dass so, als ob du blind Karten abwirst und nachziehst. Somit sollte im Modell das Nachziehen doch egal sein bzw. dasselbe sein wie "ich ziehe 5 Karten aus 13(15) ohne zurücklegen". |
AW: [Mathematik] Wahrscheinlichkeitsrechnung für Karten
Die 2^13 war folgendes:
Ich habe ja am Ende eine Reihe von Karten auf dem Tisch liegen mit Werten, die in Summe 26 ergeben. Ich wollte wissen, wie viele Kombinationen aus allen möglichen Kombinationen die Summe 26 ergeben. Wenn ich die Joker weglasse kann man eine Tabelle aufstellen in der alle Kombinationen stehen. Das sind in Summe 8192 Stück (quasi wie eine Entscheidungstabelle, nur mit Summen drin). Das Problem ist, dass da die Joker nicht berücksichtigt werden. Mein Problem ist, dass mir die Einbeziehung von 3 Dingen fehlt
Und zu den Jokern hab ich noch was vergessen: Die Joker haben keinen Wert und belegen damit erstmal nur Platz auf der Hand. Ich muss aber wenn ich die letzte Karte gelegt habe (und die Summe 26 erreicht habe) am Ende mindestens einen Joker auf der Hand habe, um zu gewinnen. (kann man sowas überhaupt ausrechnen? So langsam kommen mir da Zweifel) |
AW: [Mathematik] Wahrscheinlichkeitsrechnung für Karten
Wie viele Karten gibt es denn insgesamt? Gibt es insgesamt nur 13+2 Karten, oder gibt es Karten doppelt?
Also ich habe erst mal eine einfachere Variante ausgerechnet: Wie hoch ist die Wahrscheinlichkeit, dass man beim Ziehen von 5 Karten eine Summe von 26 legen kann? Dabei ist die Reihenfolge nicht berücksichtigt, d.h. die Karten werden alle in einem Rutsch gezogen, was der Startsituation entspricht.
Code:
Nichts großartiges...
# ruby
def calculatePropability(cards, n, remaining_sum) if (n <= 0) || (cards.empty?) return 0.0 end propability = 0.0; cards.each_with_index do |card, index| # set of remaining cards new_cards = cards.clone; new_cards.delete_at(index); new_remaining_sum = remaining_sum - card; # we have won the game if new_remaining_sum == 0 item_propability = 1.0 # we have lost the game elsif new_remaining_sum < 0 item_propability = 0.0 else item_propability = calculatePropability(new_cards, n-1, new_remaining_sum); end # add up partial propabilities propability += (1.0/cards.count)*item_propability; end return propability; end cards = (1..13).to_a + [0,0]; # cards from 1 to 13, 2 jokers n = 5; sum = 26; puts calculatePropability(cards, n, sum); Die ausgegebene Wahrscheinlichkeit ist hier ungefähr 11.18%. Wie gesagt, das Nachziehen ist nicht berücksichtigt, es wird nur ausgegeben, wie hoch die Wahrscheinlichkeit mit den 5 Start-Karten ist. Über das Nachziehen muss ich noch mal genauer nachdenken. Aber vielleicht ist der Algorithmus schon mal ein Ansatz... Ich glaube, dass es letztendlich aber keine andere Berechnungsmöglichkeit gibt, als alle Möglichkeiten durchzuiterieren, sprich Bruteforce. |
AW: [Mathematik] Wahrscheinlichkeitsrechnung für Karten
Zitat:
Zitat:
Und ja, der Algorithmus ist schonmal ein Anfang (auch wenn mein Ruby eingerostet ist) |
AW: [Mathematik] Wahrscheinlichkeitsrechnung für Karten
Ich hab mir noch was überlegt, um die Anzahl der möglichen Züge für eine verbleibende Anzahl von Karten auf dem Stapel auszurechnen:
Code:
hand_count ist dabei einfach eine Konstante, die angibt wie viele Karten man in der Hand hält (5).
def calculatePossibilities(hand_count, stack_count)
if stack_count <= 0 # number of possible cards to play: hand_count hand_count else # number of possible cards to pick from stack: stack_count # number of possible cards to play: hand_count # remaining number of moves: calculatePossibilities(hand_count, stack_count-1) stack_count*hand_count*calculatePossibilities(hand_count, stack_count-1) end end puts calculatePossibilities(5, 13+2-5); Hoffe ich hab da jetzt keinen Denkfehler. Damit ergeben sich 1.77×10¹⁴ mögliche Spielzüge. Nur, wie man die beiden Ergebnisse jetzt verknüpft, bzw. ob man sie überhaupt verknüpfen kann, oder ob mein Ansatz kompletter murks ist, damit bin ich überfragt. Ich geb’s an dieser Stelle daher einfach mal auf... aber angefixt hast du mich. Fände es sehr interessant, wenn jemand, der von Mathe mehr Ahnung hat als ich, hier doch noch eine Lösung postet. |
AW: [Mathematik] Wahrscheinlichkeitsrechnung für Karten
Also, kurzes Update, zumindest zur Theorie:
Um die Anzahl der Permutationen zu reduzieren, kann man folgendes nutzen:
Man müsste also alle Permutationen aufzählen, wobei die ersten 5 Elemente zu sortieren sind. Dann sind es in Summe (nur :lol:) (15 über 5) * 10! = 10897286400 Immer noch viel, aber weniger als anfangs gedacht. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:54 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz