AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Delphi-PRAXiS - Lounge Klatsch und Tratsch [Mathematik] Wahrscheinlichkeitsrechnung für Karten
Thema durchsuchen
Ansicht
Themen-Optionen

[Mathematik] Wahrscheinlichkeitsrechnung für Karten

Ein Thema von Codewalker · begonnen am 18. Jan 2012 · letzter Beitrag vom 22. Jan 2012
Antwort Antwort
Benutzerbild von Codewalker
Codewalker

Registriert seit: 18. Nov 2005
Ort: Ratingen
945 Beiträge
 
Delphi XE2 Professional
 
#1

[Mathematik] Wahrscheinlichkeitsrechnung für Karten

  Alt 18. Jan 2012, 12:30
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
  Mit Zitat antworten Zitat
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.737 Beiträge
 
Delphi 6 Enterprise
 
#2

AW: [Mathematik] Wahrscheinlichkeitsrechnung für Karten

  Alt 18. Jan 2012, 15:19
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".
Ralph
  Mit Zitat antworten Zitat
Benutzerbild von Codewalker
Codewalker

Registriert seit: 18. Nov 2005
Ort: Ratingen
945 Beiträge
 
Delphi XE2 Professional
 
#3

AW: [Mathematik] Wahrscheinlichkeitsrechnung für Karten

  Alt 18. Jan 2012, 15:33
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
  1. Die 5 Starthandkarten
  2. Die 2 Joker
  3. Die nachgezogenen Karten
Für jede ausgelegte Karte ziehe ich genau eine Karte nach, so dass im immer 5 Karten auf der Hand habe. Ich lege so lange Karten, bis die Summe 26 ergibt (falls möglich). Ich weiß also vor Beginn nicht, wie viele Karten ich lege und damit auch nachziehe.

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)
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#4

AW: [Mathematik] Wahrscheinlichkeitsrechnung für Karten

  Alt 18. Jan 2012, 16:00
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:
# 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);
Nichts großartiges...

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.
  Mit Zitat antworten Zitat
Benutzerbild von Codewalker
Codewalker

Registriert seit: 18. Nov 2005
Ort: Ratingen
945 Beiträge
 
Delphi XE2 Professional
 
#5

AW: [Mathematik] Wahrscheinlichkeitsrechnung für Karten

  Alt 18. Jan 2012, 16:02
Wie viele Karten gibt es denn insgesamt? Gibt es insgesamt nur 13+2 Karten, oder gibt es Karten doppelt?
13+2 ist richtig. Es gibt keine doppelten Karten.

Ich glaube, dass es letztendlich aber keine andere Berechnungsmöglichkeit gibt, als alle Möglichkeiten durchzuiterieren, sprich Bruteforce.
Ich hoffe nicht

Und ja, der Algorithmus ist schonmal ein Anfang (auch wenn mein Ruby eingerostet ist)
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#6

AW: [Mathematik] Wahrscheinlichkeitsrechnung für Karten

  Alt 18. Jan 2012, 17:40
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:
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);
hand_count ist dabei einfach eine Konstante, die angibt wie viele Karten man in der Hand hält (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.
  Mit Zitat antworten Zitat
Benutzerbild von Codewalker
Codewalker

Registriert seit: 18. Nov 2005
Ort: Ratingen
945 Beiträge
 
Delphi XE2 Professional
 
#7

AW: [Mathematik] Wahrscheinlichkeitsrechnung für Karten

  Alt 22. Jan 2012, 11:29
Also, kurzes Update, zumindest zur Theorie:

Um die Anzahl der Permutationen zu reduzieren, kann man folgendes nutzen:
  • Die Reihenfolge der ersten 5 Handkarten ist irrelevant
  • Beide Gewinnkarten sind identisch zu behandeln (mach aus 15! schonmal 15!/2)
  • Nach maximal 6 Karten muss die Summe 26 genau erreicht sein. Es gibt keine Kartenkombination mit >6 Karten, die Summe 26 ergibt

Man müsste also alle Permutationen aufzählen, wobei die ersten 5 Elemente zu sortieren sind.
Dann sind es in Summe (nur ) (15 über 5) * 10! = 10897286400
Immer noch viel, aber weniger als anfangs gedacht.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:10 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz