Lotto 6 aus 49

Aus ProgrammingWiki
Archivierte Version vom 2014-08-13T20:10:15+00:00. Aktuelle Version

Autor: Berger, Veit

Lotto_Ziehungsgeraet1.jpg
Ziehungsgerät zum Lotto 6 aus 49

Vorüberlegung

Zunächst ist es kein Problem, Zufallszahlen zwischen 1 und 49 zu bestimmen (s. Prozeduren mit Zeichenketten und Listen).
Wir sollten aber daran erinnern, dass diese Zahlen in einer korrekten Lottoziehung paarweise verschieden sein müssen.

Algorithmus

Wir wollen uns für eine endständig rekursive Problemlösung entscheiden, in der wir eine Liste mit korrekten Lottozahlen im rekursiven Abstieg einer entsprechenden Prozedur bilden. Mit einer Zählvariablen steuern wir den Ablauf:

  • Falls der Zähler Null ist, gib die vollständige Liste einer Lottoziehung zurück.
  • Anderenfalls lege eine Zufallszahl zwischen 1 und 49 fest.
  • Prüfe, ob sie bereits Element der aktuellen Teilziehung ist.
  • Trifft dieser Fall zu, wiederhole die Ziehung bei unverändertem Zählerstand.
  • Anderenfalls füge die Zufallszahl zur Teilziehung hinzu und führe die Ziehung bei dem um 1 verminderten Zähler fort.

Implementation

Um eine aufsteigend sortierte Lottoziehung zu ermitteln, modifizieren wir den Listen-Konstruktor cons geringfügig zu cons-sort.

Zurück zum Algorithmusbegriff.