[erledigt] Programm/Algorithmus f. „x aus y“-Lotterie

Du suchst ein Programm für einen bestimmten Zweck?
Antworten
Benutzeravatar
GregorS
Beiträge: 3124
Registriert: 05.06.2008 09:36:37
Wohnort: Freiburg
Kontaktdaten:

[erledigt] Programm/Algorithmus f. „x aus y“-Lotterie

Beitrag von GregorS » 20.08.2024 07:51:14

Hallo allerseits!

Aktuell benötige ich ein Programm, das mir 6 unterschiedliche Zahlen zwischen 1 und 20 ausgibt.

Ich war schon auf dem besten Weg, ein C++-Programm loszutippen, als mir aufging, dass eine „x aus y“-Zahlenwahl eine nicht selten anzutreffende Aufgabe ist. Kennt hier jemand evtl. Programmbeispiele oder Tutorials, die dieses Thema so behandeln, dass man ein entsprechendes Programm schreiben kann?

Mir sind zwischenzeitlich zwei mögliche Wege zur Programmierung eingefallen und ich wüsste gerne, ob es noch mehr Möglichkeiten gibt, diese Aufgabenstellung anzugehen.

Danke vorweg!

Gregor
Zuletzt geändert von GregorS am 20.08.2024 08:27:50, insgesamt 1-mal geändert.
Wenn man keine Probleme hat, kann man sich welche machen. ("Großes Lötauge", Medizinmann der M3-Hopi [und sog. Maker])

kiozen
Beiträge: 36
Registriert: 14.05.2019 17:58:34

Re: [S] Programm/Algorithmus f. „x aus y“-Lotterie

Beitrag von kiozen » 20.08.2024 08:23:32

ChatGPT sagt:

Code: Alles auswählen


#include <iostream>
#include <set>
#include <cstdlib>
#include <ctime>

int main() {
    std::set<int> uniqueNumbers;
    std::srand(std::time(0)); // Initialisiere den Zufallsgenerator mit der aktuellen Zeit

    while (uniqueNumbers.size() < 6) {
        int num = std::rand() % 20 + 1; // Generiere eine Zufallszahl zwischen 1 und 20
        uniqueNumbers.insert(num); // Füge die Zahl in die Menge ein (automatisch nur einzigartige Zahlen)
    }

    std::cout << "Die 6 unterschiedlichen Zufallszahlen sind: ";
    for (int num : uniqueNumbers) {
        std::cout << num << " ";
    }

    std::cout << std::endl;
    return 0;
}


kiozen
Beiträge: 36
Registriert: 14.05.2019 17:58:34

Re: [S] Programm/Algorithmus f. „x aus y“-Lotterie

Beitrag von kiozen » 20.08.2024 08:24:31

Und ja ich weiß dass ist nicht exakt Lotto. Dürfte aber vom Ergebnis egal sein.

tobo
Beiträge: 2335
Registriert: 10.12.2008 10:51:41

Re: [S] Programm/Algorithmus f. „x aus y“-Lotterie

Beitrag von tobo » 20.08.2024 08:24:49

GregorS hat geschrieben: ↑ zum Beitrag ↑
20.08.2024 07:51:14
Mir sind zwischenzeitlich zwei mögliche Wege zur Programmierung eingefallen und ich wüsste gerne, ob es noch mehr Möglichkeiten gibt, diese Aufgabenstellung anzugehen.
Wenn man wüsste, was dir dazu eingefallen ist?!

Mir würde einfallen:
-Man steckt die 20 Zahlen in eine Liste und entfernt 6 Stück zufällig daraus (damit wären Dubletten eliminiert).
-Man zieht Zufallszahlen (aus dem entsprechenden Bereich) und fügt sie einer Menge hinzu (damit wären Dubletten eliminiert) bis Anzahl=6.
-Man nimmt ein Programm, das dafür ausgelegt ist. Sowas z.B.:

Code: Alles auswählen

shuf -i 1-20 -n 6

Benutzeravatar
GregorS
Beiträge: 3124
Registriert: 05.06.2008 09:36:37
Wohnort: Freiburg
Kontaktdaten:

Re: [erledigt] Programm/Algorithmus f. „x aus y“-Lotterie

Beitrag von GregorS » 20.08.2024 08:47:10

Vielen Dank für die Antworten!

Das Programm, das ChatGPT vorschlägt, entspricht in etwa einem der beiden Wege, die mir vorgeschwebt sind. Aber shuf ist natürlich deutlich bequemer, zudem es mit den coreutils sowieso installiert wurde.

Hintergrund der Angelegenheit ist übrigens eine weitere Modifikation der Spielregeln bei meinen Samstäglichen Darts-Treffen: Wir haben lange Zeit das standardmäßige Cricket gespielt. Das führte allerdings dazu, dass ziemlich lange Spiele zustande kamen – wir haben so oft nur zwei Runden an einem Abend gespielt.
Also haben wir die Regeln stark vereinfacht: Punkte wurden ganz abgeschafft, es wird nur auf die Zahlen von 15-20 gespielt und wenn man einen Tripple oder Double wirft, zählt der auch, wenn er bei einer beliebigen Zahl fällt. So kommen wir jetzt oft auf 5-6 Partien.
Die jüngste Idee ist nun, dass die gewünschten Zahl-Felder ausgewürfelt werden.
Ein Freund hat dazu schon spontan einen Satz „Zwanziger-Würfel“ (Isokaeder) gekauft, ich will das bei Bedarf schnell im Terminal erledigen.

PS: Schön wird's, wenn man shuf und sort kombiniert:

Code: Alles auswählen

gszaktilla@lili:~$ shuf -i 1-20 -n 6 | sort -g
2
4
7
9
12
14
gszaktilla@lili:~$ 
Wenn man keine Probleme hat, kann man sich welche machen. ("Großes Lötauge", Medizinmann der M3-Hopi [und sog. Maker])

Antworten