AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Ordung muss sein

Ein Thema von block35plus1 · begonnen am 2. Okt 2003 · letzter Beitrag vom 2. Mär 2004
Antwort Antwort
Benutzerbild von Billa
Billa

Registriert seit: 11. Aug 2003
238 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

Re: Ordung muss sein

  Alt 5. Okt 2003, 15:49
Hallo zusammen,

nachdem ich jetzt die ganze Diskussion verfolgt habe, möchte ich dazu auch was loswerden.
Bei solchen Aufgabenstellungen sind doch wohl die Algorithmen die besten, die die "Wirklichkeit" am besten abbilden (und damit häufig am besten verstanden werden. Deshalb würde ich beim Lottoproblem eine Synthese aus den Ansätzem von Hansa und den Überlegungen von Hagen wählen:

Was passiert den da tatsächlich?

Am Anfang haben wir eine (geordnete!!!) Menge von 49 Kugeln auf dem Plastikgitter. Okay, wir erzeugen eine Liste A mit 49 Elementen. Der Einfachheit halber mit Zahlen als Bezeichnern. Da könnten nämlich auch Äpfel, Birnen oder sonstwas aufgemalt sein. Es geht hier um 49 verschiednene Symbole, und das die zählbar sind ist Zufall! (...und führt zu dem Kardinalfehler die Ordnungsnummer mit dem Wert zu verwechseln....)

Dann fallen die Kugeln in die Trommel und werden gemischt. Das können wir auch: wir erzeugen z.B. 1000 Zahlenpaare aus Zufallszahlen (1..n, n = 49) und vertauschen jeweils die Elemente der Liste A mit diesem Index.

Dann entnehmen wir die erste "Kugel" (Zufallszahl, Trunc(Random*n)+1 ), löschen das Element aus der Liste und vermindern die obere Grenze (n = n - 1).
In Liste B wird das soeben gezogene Element eingefügt. Das wird 6 mal wiederholt. Damit sind sowohl die (richtigen) Überlegungen von Hagen befriedigt, als auch die Anschaulichkeit gewahrt.

Ich würde für kleine Mengen sogar wirklich Listen (einfach verkettet) benutzen. Das letzte Element erhält als Nachfolger das erste. Dieser "Ring" kann wunderbar mit Hilfe der Indizes abgeklappert werden. Gefundene Elemente werden wirklich aus der Liste entfernt, durch die Ringstruktur gibt es keinen Überlauf. Um die Schwächen der Random-Funktion etwas abzumildern kann zu jedem Zufallswert nochmal n addiert werden. Dann "läuft" der Index einfach ein Runde länger. Die Zufallszahl sollte nur auf alle Fälle > n sein.

Beim echten Lotto wird die Liste B anschließend noch geordnet.

Und jetzt die Schwächen dieser Lösung: Wenn es sich um große Mengen handelt, dauern speziell das Mischen und die Einfüge- und Ausfüge-Operationen lange. Aber die "Lottoshow" dauert ja auch einige Minuten. Und für max 49 Elemente reicht das.
Gruß Billa

Nur weil ich paranoid bin, heißt das nicht, daß die da draussen nicht hinter mir her sind....
  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 21:17 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