🍀 Das LibreOffice Forum braucht HEUTE Ihre Hilfe! 🍀
❤️ Spenden Sie jetzt und sichern Sie die Zukunft unseres LibreOffice-Forums ❤️
Ihre Spende hilft, die Community offen, werbefrei (bei Registrierung) und lebendig zu halten. Vielen lieben Dank!

🙏 DANKE >> << DANKE 🙏

>> Das LibreOffice-Forum lebt von Ihnen – und von vielen Experten, die freiwillig und kostenlos ihr Wissen teilen.<<
Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet.

Kombinationsliste 52 über 5 erstellen

CALC ist die Tabellenkalkulation, die Sie immer wollten.
Antworten
Baneling
Beiträge: 3
Registriert: So 26. Jul 2015, 12:55

Kombinationsliste 52 über 5 erstellen

Beitrag von Baneling » So 26. Jul 2015, 13:06

Hallo,
Vorweg: Ich bin ein Calc, Excel, etc. Beginner also bitte nicht zu viel von mir erwarten :)

Ich würde gerne eine Tabelle erstellen die pro Zeile eine Kombinationsmöglichkeit bestehend aus 5 Karten (aus einem Kartendeck mit 52 Karten, Reihenfolge egal) anzeigt. Dabei sollen die insgesamt 2.598.960 Möglichkeiten zumindest anhand der ersten Karte sortiert sein: z.B. zuerst alle Möglichkeiten mit Kreuz 2, dann Karo 2, Pik 2, Herz 2, Kreuz 3, etc..

Ich freue mich auf eure Antworten ;)

F3K Total
* LO-Experte *
Beiträge: 2515
Registriert: So 10. Apr 2011, 10:10

Re: Kombinationsliste 52 über 5 erstellen

Beitrag von F3K Total » So 26. Jul 2015, 14:18

Moin,
kannst Du mal erklären, wofür du so eine Liste gebrauchen möchtest?
  • Überblicken wirst du sie nicht :?
  • ausgedruckt würde der Stapel etwa 3,6 Meter hoch sein! :roll:
  • Calc und meiner Meinung nach auch Excel haben maximal 1.048.576 Zeilen :(
Wie wäre es mit einem Zufallsgenerator?
Siehe Anlage, Makros muss du erlauben.
Damit das Makro laufen darf, stellst du unter Extras/Optionen/LibreOffice/Sicherheit/Makrosicherheit mindestens die Stufe "Mittel" ein, dann wirst du beim Öffnen von Dokumenten gefragt, ob du Makros ausführen möchtest.

Gruß R
Dateianhänge
Karten_ziehen.ods
(12.52 KiB) 86-mal heruntergeladen
Windows 11: AOO, LO Linux Mint: AOO, LO

Baneling
Beiträge: 3
Registriert: So 26. Jul 2015, 12:55

Re: Kombinationsliste 52 über 5 erstellen

Beitrag von Baneling » So 26. Jul 2015, 14:55

Danke für die Antwort :)

Wir wollen ein Programm schreiben, welches die Gewinnwahrscheinlichkeit eines Blattes beim Multi Poker während dem Spielen anzeigt. Bei dieser Pokervariante zieht zuerst der Spieler 5 Karten und dann die Bank 5 Karten, wobei die Bank dem Spieler eine ihrer Karten zeigt. Eine allgemeine Formel für das Errechnen der Wahrscheinlichkeit eines Blattes durch den Computer fällt mir nicht ein, weshalb ich auf eine Tabelle bestehend aus 52 über 5 Kombinationen zurückgreifen möchte. Dabei soll der Computer alle Einträge darauf überprüfen ob diese bei meinem Blatt möglich sind (Wenn ich den Karo König habe ist dieser beim Computer ausgeschlossen) und ob mein Blatt gewinnt und so Ergebnis für Ergebnis die Gewinnwahrscheinlichkeit anpassen.

Alternativ könnte ich das in mehrere Tabellen aufteilen :P
Ein Zufallsgenerator hilft mir da dann leider nicht weiter^^

Benutzeravatar
karolus
* LO-Experte *
Beiträge: 2712
Registriert: Fr 10. Dez 2010, 10:01

Re: Kombinationsliste 52 über 5 erstellen

Beitrag von karolus » So 26. Jul 2015, 17:17

Hallo

Wie kommst du eigentlich auf die Idee die Aufgabe mit Hilfe von Calc zu lösen?
Eine allgemeine Formel für das Errechnen der Wahrscheinlichkeit eines Blattes durch den Computer fällt mir nicht ein,
Du hast sie bereits genannt, die Wahrscheinlichkeit eines bestimmten Blatts 5 aus 52 beträgt 1/2.598.960

Ein paar Gedankenansätze in `Python`-code formuliert:

Code: Alles auswählen

from itertools import combinations
from random import  choice

carddeck = set((color, value) for color in 'KPHC' for value in range(1,14))

# alle Kombinationen
allcombinations = tuple(combinations(carddeck,5))

#Spiel
#dein Blatt
yours = choice(allcombinations)
print(yours) #z.b. (('K', 2), ('H', 11), ('K', 11), ('H', 10), ('P', 8))

# wir nehmen deine Karten raus
restdeck = carddeck.difference(yours)
restcombinations = tuple(combinations(restdeck, 5))
# das Blatt der Bank
bank = choice( restcombinations )
print(bank) # kontrolle z.B. (('P', 12), ('H', 1), ('P', 5), ('P', 4), ('C', 4))
#du kennst `yours` und eine Karte von `bank`:
seen = choice(bank) 
print(seen) # du lässt dir die Karte zeigen # z.B. ('P', 5)

#aus deiner Sicht musst du die Gewinnausicht deiner Karten, mit einer
#gemittelten Gewinnausicht der übrigbleibenden Möglichkeiten vergleichen
#deren pure Anzahl ist:
restdeck = restdeck.difference((seen,))
possiblecards = tuple((seen,) + combi for combi in combinations(restdeck,4) )
print(len(possiblecards)) #163185

def gewinnaussicht(blatt, others):
    # hier bist du an der Reihe,
    # ich kenne die Pokerregeln nicht
    pass
LO25.2.x.y debian 13(trixie) auf Raspberry5 8GB (64bit)
LO25.8.x.y flatpak debian 13(trixie) auf Raspberry5 8GB (64bit)

Baneling
Beiträge: 3
Registriert: So 26. Jul 2015, 12:55

Re: Kombinationsliste 52 über 5 erstellen

Beitrag von Baneling » So 26. Jul 2015, 17:56

Mit Wahrscheinlichkeit meinte ich die Gewinnwahrscheinlichkeit meines Blattes, tut mir Leid.
Die "Tabelle" vom Programm während der Ausführung erstellen zu lassen erschien mir als nicht optimiert da mehrere Runden hintereinander gespielt werden (wie lange bräuchte denn ein PC etwa für die Erschaffung von 163185 Kombinationen und den Vergleich mit der eigenen Hand? - Versuche ich possiblecards auszugeben, so hängt sich das Programm auf).
Mit dem Erstellen vor Programmstart würde doch weniger Rechenleistung verlangt werden, oder nicht? Natürlich müsste trotz allem die eigene Hand noch in den Vergleich mit den anderen möglichen gestellt werden um die Gewinnwahrscheinlichkeit zu bestimmen.


An alle, die das LibreOffice-Forum gern nutzen:
Bitte beteiligen Sie sich mit 7 Euro pro Monat und helfen uns bei unserem Budget für das laufende.
Einfach per Kreditkarte oder PayPal. Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet.



❤️ Vielen lieben Dank für Ihre Unterstützung ❤️

Antworten