Delphi-PRAXiS
Seite 4 von 7   « Erste     234 56     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Ordung muss sein (https://www.delphipraxis.net/9742-ordung-muss-sein.html)

negaH 4. Okt 2003 13:58

Re: Ordung muss sein
 
Delphi-Quellcode:
  if Bereitsgezogen < 6 then begin
    Repeat
      kugel := random (48) + 1;
      i := i + 1;
    until not (kugel in gezogene);
und genau hier ist wieder der Fehler drinnen, der diesen Algo. eben nicht identisch zu meinen macht.

Angenommen 3 Kugeln wurden schon gezogen, dann verbleiben 46 Kugeln in der Urne und somit muß es Random(46) heissen. Eine Kugel die bereits gezogen wurde KANN NICHT erneut aus der Urne gezogen werden da sie nicht mehr enthalten ist. In deinem Code ziehst du immer eine Kugel aus immer 49 ( 48 ) Kugeln und falls sie schon gezogen wurde, schmeisst du sie zurück in die Urne und zieht nochmal eine Kugel. Damit verändern sich die Wahrscheinlichkeiten pro Kugel in der Urne mit der sie gezogen werden kann. Der Algo. simuliert also ebenfalls nicht die Lotto-Realität und ist falsch.
Zudem wird mit Random( 48 ) = 0..47 + 1 = 1..48 nicht 1 aus 49 gezogen sondern 1 aus 48.

Gruß Hagen

Hansa 4. Okt 2003 17:52

Re: Ordung muss sein
 
Zitat:

Zitat von negaH
...Angenommen 3 Kugeln wurden schon gezogen, dann verbleiben 46 Kugeln in der Urne und somit muß es Random(46) heissen...

Und genau da habe ich aufgehört. Ich käme dann an die 47..49 nicht mehr dran, sofern sie nicht zufällig bereits gezogen sind. Mehrfachziehung geht aber mit meinem Code trotzdem nicht. Bereits gezogene Kugeln werden einfach ignoriert und es wird neu gezogen, was bei Ziehung 48 aus 49 aber echt nicht besonders wäre. Zum Schluß hätte man dann noch 2 Kugeln und der Zufallsgenerator braucht ewig 3..49 zu durchsuchen, die auszuschließen und neu anzufangen, bis er endlich bei 1 oder 2 landet. Bei 6 aus 49 und EINER Ziehung ist es allerdings meiner Ansicht nach so machbar. Zumindest für eine 3 in der Schule. :mrgreen: Richtig machen würde ich das auch mit 2 Listen, statt 2 Sets.

Und wegen der in diesem Fall klar begrenzten und kleinen Zahlenmengen gehts wie gesagt auch mit Arrays.

negaH 4. Okt 2003 20:37

Re: Ordung muss sein
 
Zitat:

Ich käme dann an die 47..49 nicht mehr dran, sofern sie nicht zufällig bereits gezogen sind. Mehrfachziehung geht aber mit meinem Code trotzdem nicht. Bereits gezogene Kugeln werden einfach ignoriert und es wird neu gezogen, was bei Ziehung 48 aus 49 aber echt nicht besonders wäre
Dein Code macht Mehrfachziehungen. Eine Ziehung einer Kugel ist das zufällige Auswählen einer Kugel. Stellt dein Algo. fest das dieses Auswählen eine Kugel zieht die schon gezogen wurde so wählt er erneut stattdessen ein Kugel aus. Dies ist eben falsch da nun zum Auswählen dieser Kugel schon zweimal mit 1/49 eine Kugel gewählt wurde.
Nochmal:

die Kugeln 4,34,20 wurden schon gezogen. Es sind noch 46 Kugeln in der Urne. Die nächste Kugel die gezogen wird MUSS mit einer Wahscheinlichkeit von exakt 1 aus 46 gezogen werden.

Nun dein Algo. wählt per Zufall 1 aus 49 aus, und es ist die 4 . Da die 4 schon gezogen wurde wird erneut eine Kugel aus 1 aus 49 gezogen, und es ist die 34. Da die 34 schon gezogen wurde wählt der Algo. erneut eine Kugel aus 49 aus und es ist die 20. Da die 20 schon gezogen wurde zieht er erneut und hat die 32.

So, rechne nach. Um die vierte Kugel zu ermitteln hat dein Algo 1/49 + 1/49 + 1/49 + 1/49 = 4/49 benötigt, und somit eine komplett andere Gesamtwahrscheinlichkeit pro Kugel erzeugt. Jede Kugel der 46 möglichen Kugeln im 4. Zug könnte also in diesem Beispiel mit exakt 4/49 Wahrscheinlichkeit gezogen werden. Dies ist falsch.

Da du immer aus 49 Kugeln ziehst und beim Mehrfachziehen schon gezogener Kugeln erneut eine ziehst heisst die das dein Algo. die doppelt gezogene Kugel sozusagen zurücklegt in die Urne. Würde der Algo. richtig arbeiten so dürfte er eine gezogene Kugel nicht in die Urne zurücklegen. Stattdessen entnimmet er die Kugel der Urne, und somit ist eine Kugel weniger in der Urne. Dadurch muss sich die Wahrscheinlichkeit das eine Kugel gezogen wird, von Zug zu Zug für jede Kugel erhöhen.

Gruß Hagen

Hansa 4. Okt 2003 20:51

Re: Ordung muss sein
 
Jetzt muß ich doch tatsächlich noch den Kram mit der Wahrscheinlichkeitstheorie aus meinem Gehirn raussuchen. :cry: Aber da war ich gut drin. Eine richtige Lottoziehung ist das wirklich nicht. Das Gesamtergebnis Anzahl Ziehungen und Endergebnis ist nicht wie beim echten Lotto. ABER: Die Wahrscheinlichkeit für jede Zahl pro Ziehung bleibt gleich, weil ich ja die gezogenen nicht beachte. Wirkt sich das auf das Endergebnis jetzt irgendwie aus ? :gruebel: Wer es nicht weiß: ziehe ich eine Zahl aus 100 ist die Wahrscheinlichkeit 1 %. Lege ich sie wieder rein, wie hoch ist sie dann, daß genau diese Zahl bei der nächsten Ziehung wieder kommt :?: Nein, verrate ich nicht sofort.

Und gleich die nächste Preisfrage: Wie hoch ist die Wahrscheinlichkeit, daß ich gewinne mit der Wettaussage: "Jetzt kommt zweimal hintereinander die 1" ? @Hagen: Bitte nichts verraten, die Antwort steht hier fast im Thread. :lol:

imp 5. Okt 2003 10:19

Re: Ordung muss sein
 
Oh weh, da ist sie wieder die bedingte Wahrscheinlichkeit. Da hatte ich schon immer meine Schwierigkeiten mit. Da ich Grundsätzlich zuerst mal die falsche Antwort gebe lasse ich es lieber sein. Aber mir fallen in diesem Zusammenhang immer zwei Fragen (Probleme) ein die zwar nicht hierhergehören (oder doch?) aber trotzdem immer wieder gut sind:
1) Ziegenproblem:
Gegeben: 3 Tore hinter denen sich zwei Ziegen und ein Auto befinden. Der Kandidat wählt ein Tor,
woraufhin der Quizmaster eines der zwei verbliebenen öffnet hinter dem sich eine Ziege befindet.
Frage: Behält man das Tor das man zuerst gewählt hat oder nimmt man das andere?
2) Geschwisterproblem:
Gegeben: Vater der zwei Kinder hat wovon eines ein Sohn ist.
Frage: Mit welcher Wahrscheinlichkeit hat der Sohn einen Bruder?

Sharky 5. Okt 2003 10:38

Re: Ordung muss sein
 
Zitat:

Zitat von imp
....
2) Geschwisterproblem:
Gegeben: Vater der zwei Kinder hat wovon eines ein Sohn ist.
Frage: Mit welcher Wahrscheinlichkeit hat der Sohn einen Bruder?

Ist der geannte Sohn das ältere oder jüngere Kind?

negaH 5. Okt 2003 10:54

Re: Ordung muss sein
 
Zitat:

ABER: Die Wahrscheinlichkeit für jede Zahl pro Ziehung bleibt gleich, weil ich ja die gezogenen nicht beachte.
Eben nicht. Eine Ziehung ist das erfolgreiche zufällige herausnehmen einer Kugel. Wird bei einem Zug eine Kugel gezogen die schon gezogen wurde, so muß für diese Ziehung erneut eine andere Kugel heraus genommen werden. Somit verändern sich die Wahrscheinlichkeiten für jede ziehbare Kugel pro Ziehung im gesammten, auch für die abschließend korrekt gezogenen Kugeln. So arbeitet dein Algo und das ist definitiv nicht richtig. Die Wahrscheinlichkeiten die sich auf Grund der Realitäten ergeben sind vorgegeben und unveränderlich.
Ok, meine obigen Rechnungen sind nicht ganz exakt, denn sie berücksichtigten nicht die abzuziehende Wahrscheinlichkeit für die doppelt gezogene Kugel. Allerdings spielte das zur Demonstration warum der Algo nicht korrekt ist keine wichtige Rolle.

Gruß Hagen

Hansa 5. Okt 2003 11:24

Re: Ordung muss sein
 
Zitat:

Zitat von imp
2) Geschwisterproblem:
Gegeben: Vater der zwei Kinder hat wovon eines ein Sohn ist.
Frage: Mit welcher Wahrscheinlichkeit hat der Sohn einen Bruder?

Wahrscheinlich ist da ein Haken dabei, sieht zu einfach aus,mir egal. Ich sage mal 25 %. Die Wahrscheinlichkeit beim 1. Kind ist nämlich 0.5 und beim zweiten wieder 0.5. Also 25%(=0.5 * 0.5). Und es gibt ja auch nur 4 Möglichkeiten:

ww,wm,mw,mm für die 2 Kinder. Wie gesagt nach dem 1. Kind ist sie 50 % und das ändert sich mit steiegender Kinderzahl auch nicht :!:

Tja und mit meinem Algo bin ich mir noch nicht so ganz im reinen. Wird nicht durch zurücklegen der Kugel wieder die alte Wahrscheinlichkeit wiederhergestellt ? Daß der Algo an sich so nicht gut ist, ist wohl klar.

Sharky 5. Okt 2003 11:30

Re: Ordung muss sein
 
Zitat:

Zitat von Hansa
... Ich sage mal 25 %. Die Wahrscheinlichkeit beim 1. Kind ist nämlich 0.5 und beim zweiten wieder 0.5. Also 25%(=0.5 * 0.5). Und es gibt ja auch nur 4 Möglichkeiten:
ww,wm,mw,mm für die 2 Kinder. Wie gesagt nach dem 1. Kind ist sie 50 % und das ändert sich mit steiegender Kinderzahl auch nicht ...

Entweder 1/3 oder 1/2

Wie Du selber sagst gibt es maximal 4 Möglichkeiten. Die Möglichkeit ww ist aber ausgeschlossen. Bleiben also 3.

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.

Man sieht. Wahrscheinlichkeiten kann ich von verschiedenen Gesichtspunkten aus betrachten ;-)

negaH 5. Okt 2003 11:55

Re: Ordung muss sein
 
Zitat:

Wird nicht durch zurücklegen der Kugel wieder die alte Wahrscheinlichkeit wiederhergestellt ?
Nein, da eine Ziehung damit verlängert wird.
Grundsätzlich darf es garnicht vorkommen das man eine Kugel mehrmals ziehen kann. Wird im Lotto eine Kugel gezogen so ist sie nicht mehr im Spiel, eg. Urne. D.h. Wahrscheinlichkeiten ohne zurücklegen.

Ist es denoch möglich das eine Kugel mehrmals gezogen werden kann, dann ist das "Wahrscheinlichkeit mit zurücklegen". Da dies dem Lottosystem widerspricht muß dein Algo. sicherstellen das die gezogene Kugel nicht schon gezogen wurde. Aus Sicht der Lotto-Ziehung einer Kugel, als Aktion die eine fixiert Wahrscheinlichkeit besitzt, würde dein Algo. daraus eine Ziehung mit "veränderlicher Wahrscheinlichkeit" machen. Denn NICHT das Auswählen EINER Kugel aus der Urne bestimmt die Wahrscheinlichkeit sondern die Ziehung einer korrekten Kugel, bestimmt die Gesamtwahrscheinlichkeit.

Anders ausgedrückt: beim Lotto 6 aus 49 entstehen drei Wahrscheinlichkeiten:
1.) die Wahrscheinlichkeit pro Kugel aus der Urne das sie jetzt gezogen wird
2.) die Wahrscheinlichkeit pro Ziehung das eine bestimmte Kugel gezogen wird
3.) die Wahrscheinlichkeit jeder Kugel das sie innerhalb von 6 Ziehungen gezogen wird.

1. und 2. sind beim Lotto identisch, aber NICHT in deinem Algo.
1. und 2. und 3. sind feste unveränderliche Wahrscheinlichkeiten, d.h. sie dürfen sich auf grund der Art und Weise wie man die Kugeln zieht, nicht verändern.

Beim Lotto:
1.) 1/49, 1/48, 1/47, 1/46, 1/45, 1/44 jeweils nach x. Zug
2.) = 1.)
3.) 1/49 + 1/48 + 1/47 + 1/46 + 1/45 + 1/44

Bei deinem Algo
1.) 1/49, 1/49, 1/49, 1/49, 1/49, 1/49 jeweils nach x. Zug
2.) 1/49, 1/49 + (1/49) / (1/48 ) + (1/49) / (1/48 ) / (1/47) .... / (1/44), 1/49 + (2/49) / (2/48 ) .... / (2/44), ...
3.) 1/49 + (1/49 + (1/49) / (1/48 ) + (1/49) / (1/48 ) / (1/47) ...., ......

Letzendlich entsteht eine andere Wahrscheinlichkeit der gesamten Lottoziehung.

Man sieht das im Schritt 1, durch das Zurücklegen sich die Wahrscheinlichkeit pro Kugel nicht erhöht wie beim Lotto.
Im Schritt 2.) sprich die Ziehung der x. Kugel im gesamten, sieht man das durch die Möglichkeit der Mehrfachziehung die Wahscheinlichkeiten erhöhen pro Kugel gezogen zu werden.
Dies hat zur Folge das im 3.) Schritt für das gesammte Lotto von 6 aus 49 sich eine komplett andere Gesamtwahrscheinlichkeit pro Kugel ergibt.
So gesehen verändert dein Algo. die Wahrscheinlichkeiten bei mehrfach ziehbaren Kugeln, auch wenn am Ende keine Kugel doppelt vorkommt.

Gruß Hagen


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:52 Uhr.
Seite 4 von 7   « Erste     234 56     Letzte »    

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