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
Seite 5 von 7   « Erste     345 67      
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#41

Re: Ordung muss sein

  Alt 5. Okt 2003, 12:56
Hehe, das war ja nur ein Häkchen. Stimmt ww fällt raus.

Zitat von Sharky:
Ist der genannte Sohn der ältere verbleibt nur noch wm und mm dann wäre es 1/2 genauso wenn bekannt ist das er der jüngere ist.
Was im Umkehrschluß bedeutet, daß es egal ist, ob jünger oder älter. Ich wollte ein Mißverständnis ansprechen. Und zwar kursieren z.B. Listen, wie lange irgendwelche Lottozahlen nicht mehr gezogen wurden. Jetzt gibts ganz schlaue, die tippen nur die Zahlen, die am längsten nicht mehr gezogen wurden und wundern sich, daß sie keinen 6er haben. Liegt bereits ein Teilergebnis vor, z.B. ein Kind, so fängt das Spiel wieder von vorne an: beim Kind mit 50 % und beim Lotto hat jede Zahl 1:49, egal ob sie gestern erst gezogen wurde oder seit 10 Jahren nicht mehr.
Gruß
Hansa
  Mit Zitat antworten Zitat
Benutzerbild von negaH
negaH

Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
 
#42

Re: Ordung muss sein

  Alt 5. Okt 2003, 13:05
Zitat:
Was im Umkehrschluß bedeutet, daß es egal ist, ob jünger oder älter. Ich wollte ein Mißverständnis ansprechen. Und zwar kursieren z.B. Listen, wie lange irgendwelche Lottozahlen nicht mehr gezogen wurden. Jetzt gibts ganz schlaue, die tippen nur die Zahlen, die am längsten nicht mehr gezogen wurden und wundern sich, daß sie keinen 6er haben. Liegt bereits ein
Jetzt wird's kompliziert, denn tatsächlich muß es beim realen Lotto so sein das bestimmte Kugeln häufiger gezogen werden als andere. Denn die Ziehungsmachine ist mechanisch und verteilt die Wahrscheinlichkeiten nicht fair auf jede Kugel. Es gibt Kugeln die ganz leichte Abweichungen in ihrer Form und Gewicht gegenüber anderen habe. Man kann NICHT 100% perfekt identische Kugel herstellen. Somit wäre es logischer beim realen Lotto die Kugeln zu tippen die am häufigsten vorkommen. In einem System das elektronisch arbeitet muß man die Kugeln tippen die am wenigsten bisher vorgekommen sind. Denn, der benutzte elekronische Zufallsgenerator muß über die Dauer aller Ziehungen gesehen, eine Gleichverteilung auf alle Kugeln erzeugen. Ansonsten wäre er nämlich nicht mehr echt Zufällig !

Allerdings, bei beiden Systemen müssten absolut gleiche Umweltbedingungen herrschen. Denn diese Abweichungen sind so minimal das z.b. minimalste Temperaturschwankungen darauf Einfluß haben.

Gruß Hagen
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#43

Re: Ordung muss sein

  Alt 5. Okt 2003, 13:14
@negaH: Jetzt hab ichs gerafft, wo der Denkfehler liegt. Die Wahrscheinlichkeiten werden tatsächlich verfälscht. Für die erste Kugel ist sie 1:49, aber die anderen Kugeln werden eventuell mehrfach gezogen und haben somit eine höhere Chance.

Nein, nein Kommando zurück. Das Ergebnis ist doch dasselbe. Irgendwie muß sich das mathematisch aufheben. Und zwar eben durch das zurücklegen der Kugel. In Deiner Formel fehlt das. Da fehlen ein paar - würde ich mal vermuten. In dem Algo verwende ich tatsächlich "Ziehung mit zurücklegen", allerdings dann mit dem Zusatz "unter Auschluß der bereits gezogenen bei nächster Ziehung". Ich vermute, daß das ein seltener Sonderfall in der Wahrscheinlichkeitstheorie ist und die genaue Formel wird nicht einfach sein. Aber für das menschliche Denken sind Wahrscheinlichkeiten irgendwie auch unlogisch. Deshalb würde mich nicht wundern, wenn es doch ein Unterschied ist. Trotzdem, die Wahrscheinlichkeit müßte gleich sein.
Gruß
Hansa
  Mit Zitat antworten Zitat
Benutzerbild von negaH
negaH

Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
 
#44

Re: Ordung muss sein

  Alt 5. Okt 2003, 16:00
Zitat:
Das Ergebnis ist doch dasselbe. Irgendwie muß sich das mathematisch aufheben. Und zwar eben durch das zurücklegen der Kugel. In Deiner Formel fehlt das.
Jai, hmpf...

Es fehlt aus gutem Grunde, weil eben dein Algo die Wahscheinlichkeiten verfälscht. Aber nochmal erkläre ich das nicht, denn anscheinend kann ich es keinem richtig erklären

Nur eines noch, berücksichtige mal die Anzahl der Aufrufe von Random() und deren Zahlenbereiche mit in der Wahrscheinlichkeitsrechnung. Erzeuge die gleichen Zufallsbedingungen mit deinem Algo. und vergleiche das Resultat der gezogenen Zahlen mit meinem Algo. Dann knetest du 49 Kugeln, malst die Zahlen von 1 bis 49 drauf, legst sie aufsteigend in eine Reihe und erzeugt per Random() den Index der herauszunehmenden Kugel. In allen drei Fällen MÜSSEN die gleichen Zahlen gezogen werden.

Gruß hagen
  Mit Zitat antworten Zitat
Benutzerbild von Billa
Billa

Registriert seit: 11. Aug 2003
237 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#45

Re: Ordung muss sein

  Alt 5. Okt 2003, 16: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
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#46

Re: Ordung muss sein

  Alt 5. Okt 2003, 17:08
Noch ein Mit-Lottospieler. Ja so würde ich es, wenn es wichtig wäre, auch machen. 2 verkettete Listen, im Prinzip nur eine mit den noch zu ziehenden Zahlen. Die würde schon reichen. Und dann wirklich ein einfacher Ring. Und dann mit random (AnzahlUebrig) da rund wandern, wie bei der richtigen Lottotrommel. Die Idee ist echt lustig. Bei gezogener Kugel den next Zeiger der Vorgängerzahl einfach auf den Next der gezogenen setzen, d.h. die Kugel fällt dann echt aus der Trommel raus. hehe, so wärs wie bei der echten Fernseh-ziehung. Das wär noch ein schönes Joke-Programm.

Nur, die Diskussion war zuletzt, ob die Wahrscheinlichkeit durch meinen SET Vorschlag tatsächlich verfälscht wird und da blickt keiner außer Hagen echt durch. Ich bin mittlerweile soweit, daß es sich mathematisch nicht einfach darstellen läßt. Was ich da mache läuft wenn überhaupt auf eine unstetige Funktion hinaus. Eher nur auf eine Relation, da ich nicht nur ein y (x), sondern eher mehrere habe, durch das zurücklegen der Kugeln. Uff, es wird immer komplizierter. Was solls, besser als Kreuzworträtsel für alte Omas.

Und @Hagen: Ist deine Formel 1/49+1/48 so richtig ? Das muß doch eher 1/49*1/48 heißen bei zwei Kugeln. Da gibts doch 49*48 Möglichkeiten ? Oder hab ich mich schon wieder verhauen ?
Gruß
Hansa
  Mit Zitat antworten Zitat
Benutzerbild von Billa
Billa

Registriert seit: 11. Aug 2003
237 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#47

Re: Ordung muss sein

  Alt 5. Okt 2003, 17:42
@Hansa: Deine SET-Lösung verfälscht in der Tat das Ergebnis. Aber das ist nicht so einfach ersichtlich.

Genauso wie es beim realen Lotto Einflüsse durch unterschiedliche Beschaffenheit der Kugeln gibt, ist der Algo extrem abhängig von der "Qualität" der Zufallszahlen. Dazu ein guter Tipp:

Robert Sedgewick, Algorithmen, Bonn, München, Reading 1991

Jede Lösung des Lotto-Problems die mit Zurücklegen der Kugeln operieren muß (also auch deine erste SET-Lösung), wird zwangsläufig einen negativen Einfluss haben. Man stelle sich im Umkehrschluss nur mal eine Lotto-Ziehung vor, in der der "ordnungsgemäße Ziehungsbeamte" eine Kugel zurücklegen muß. Da käme zu Recht Zweifel an der "Redlichkeit" der Ziehung auf. Und Lösungen, die nach dem Motto verfahren: "Tschulligung, da muß ich eben nochmal ziehen" können theoretisch sogar dahingehend entarten, daß die Ziehung zu keinem Ende kommt: der Zufallszahlen-Generator erzeugt eine "entartete Zufallsreihe". Die Mathematik ist mir an dieser Stelle zu hoch. Selbst wenn am Ende die gleichen Wahrscheinlichkeiten herauskämen, finde ich die Evaluierung dieser Methode viel zu kompliziert. Die "Ring"-Lösung ist so schön anschaulich, daß auch jemand ohne Mathematikstudium sie nachvollziehen kann.
Gruß Billa

Nur weil ich paranoid bin, heißt das nicht, daß die da draussen nicht hinter mir her sind....
  Mit Zitat antworten Zitat
Benutzerbild von negaH
negaH

Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
 
#48

Re: Ordung muss sein

  Alt 5. Okt 2003, 17:46
Zitat:
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.
Viele Postings zurück hier im Thread habe ich zur "Beweisführung" meinen Code mit genau dieser Methode erweitert. Allerdings man muß dabei NICHT die Liste vermischen, sondern es reicht aus der immer sortierten Liste per Zufallsindex eine Kugel herauszunehmen. Denn, entweder wird die Liste immer gemischt und an einem festen Index < 45 eine Kugel herausgenommen, oder aber die Liste wird nie gemischt und dafür per Zufallsindex eine Kugel entnommen. Beides führt aus Sicht der Wahrscheinlichkeiten zum selben Resultat. Es darf NICHT die Liste gemischt werden und per Zufallsindex eine Kugel entnommen werden !! Dies würde zwei Wahrscheinlichkeiten kummulieren.


Zitat:
Ist deine Formel 1/49+1/48 so richtig ? Das muß doch eher 1/49*1/48 heißen bei zwei Kugeln. Da gibts doch 49*48 Möglichkeiten ? Oder hab ich mich schon wieder verhauen ?
1/49, 1/48, 1/47, 1/46, 1/45, 1/44 sind die Wahrscheinlichkeiten pro Zug und pro Kugel.
Somit beträgt die Gesamtwahrscheinlichkeit das eine Kugel in den 6 Ziehungen gezogen wird,
6/279 = 1/46,5 meiner Meinung nach.

Da aber selbst mich die ganzen Diskussionen verwirren, werde ich erstmal meine schlauen Bücher befragen müssen.

Gruß Hagen
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#49

Re: Ordung muss sein

  Alt 5. Okt 2003, 18:33
Zitat von negaH:
...Da aber selbst mich die ganzen Diskussionen verwirren, werde ich erstmal meine schlauen Bücher befragen müssen...


Das mit dem mischen der Zahlen ist überflüssig. Das passiert ja durch das random. Und durch den Ring kann es theoretisch auch mit random (10000) passieren. Dann dreht sich die "richtige" Lottokugel eben den ganzen Tag. Das ganze geht dann ähnlich wie bei einem Glücksrad.

Ich glaube aber, daß einige hier nicht wissen, was ein Ring ist. Das ist eine verkettete Liste, bei der zum Schluß das Ende einen Zeiger auf den Anfang hat. Wenn ich nun mit random (100) arbeite kann ich ganz einfach durch
Delphi-Quellcode:
r := random (100);
for i := 1 to r do begin
  vorgaenger := ring;
  ring := ring^.naechst;
end;
die Position in dem Ring um r Positionen verschieben. Angenommen ich stehe am Anfang auf der 1, dann würde, falls r 48 ergibt die Zahl 49 gezogen. Diese müßte mit dispose oder zumindest umhängen der Zeiger, (wofür man noch ein paar Hilfsvariable bräuchte) aus dem Ring rausgenommen werden. Dieser hätte dann noch 48 Elemente. usw.

Die Datenstruktur wäre ziemlich simpel:

Delphi-Quellcode:
type RingTyp = ^RingZeigerTyp;

      RingZeigerTyp = RECORD
                         wert : byte;
                         naechst : RingTyp;
                       END;
var RingVar,
    Vorgaenger : RingTyp;
    GezogeneKugel : byte;
Bei einer gezogenen Kugel müßte man nur folgendes machen:

Delphi-Quellcode:
GezogeneKugel := RingVar^.wert;
Vorgaenger^.naechst := RingVar.naechst^; // gezogene Kugel aus Ring nehmen
Vorgaenger := RingVar;
RingVar := RingVar^.naechst;
Vorgaenger als Hilfsvariable müßte halt immer mitgeschleppt werden. Hmmm, kann das da so stimmen ?
Gruß
Hansa
  Mit Zitat antworten Zitat
Benutzerbild von Billa
Billa

Registriert seit: 11. Aug 2003
237 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#50

Re: Ordung muss sein

  Alt 6. Okt 2003, 07:42
...hmm, meine Lösung für das Vorgänger-Problem sähe so aus:

Wie vorher schon mal beschrieben, einfach n (Anzahl Kugeln) zur Zufallszahl addieren, und (um den Vorgänger bequem zu erreichen, die Zufallszahl um 1 vermindern. Dann bleibt der Zeiger auf dem gewünschten Ringeintrag "stehen".... Ansonsten scheint mir die Struktur und das Vorgehen ok....
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
Seite 5 von 7   « Erste     345 67      


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 16:05 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 by Thomas Breitkreuz