Delphi-PRAXiS
Seite 5 von 6   « Erste     345 6      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Zufals-Boolean erzeugen (https://www.delphipraxis.net/53929-zufals-boolean-erzeugen.html)

negaH 27. Sep 2005 14:02

Re: Zufals-Boolean erzeugen
 
Ein weiteres Beispiel

Delphi-Quellcode:
function BooleanToString3(Value: Boolean): String;
begin
  if Value = True then Result := 'True'
    else Result := 'False';
end;

begin
  WriteLn( BooleanToString3(Boolean(2)) );
end;
Man erwartet die Ausgabe von "True" bekommt aber "False", obwohl der Source in BooleanToString3() absolut korrekt ist.

Statt AV nun ein falscher Programmablauf den es gilt als Programmierer langwierig zu debuggen.

Gruß Hagen

TeronG 27. Sep 2005 14:06

Re: Zufals-Boolean erzeugen
 
Zitat:

... sind doch zufällig. Ich wollte halt eine "gleichmäßige" Lösung haben ...
Zitat:

Zitat von Toxman
Es geht schon nicht mehr darum, einen zufälligen Boolean zu bekommen, sondern Möglichkeiten zu garantieren (!) dass True und False gleich oft erscheinen.

:gruebel: Dann müsst "ihr" aber den Titel ändern ... denn Zufälligkeit hat nix mit Gleichmäßigkeit zu tun ...

EDIT: jaja das wurde schon "mal" erwähnt ..

negaH 27. Sep 2005 14:12

Re: Zufals-Boolean erzeugen
 
Zitat:

Dann müsst "ihr" aber den Titel ändern ... denn Zufälligkeit hat nix mit Gleichmäßigkeit zu tun ...
Tja, und dies ist eben nicht ganz richtig. Zufall erzeugt schon im Mittel eine absolute Gleichverteilung. Je länger eine Zufallskette von Ereignissen wird desto unwahrscheinlicher werden alle WorstCase Szenarien. ZB. bei 1000 Boolans per Zufall erzeugt ist eine Kette aus lauter TRUE's mit 1/2^1000 sehr sehr unwahrscheinlich, aber denoch möglich. Im Allgemeinen werden es aber ca. 50% TRUE/FALSE Werte enthalten sein.

Zufall tendiert also im Gegensatz zu Chaos immer zu einer Gleichverteilung bzw. Uniformität. Es ist schon kourios, aber mathematisch gesehen besteht beim Zufall der relevante Unterschied in der Größe der Datenmenge die man analysiert. Je kleiner die Datenmenge ist des ungleichverteilter, chaosartiger erscheint diese Menge. Je größer die Menge wird desto Uniformer und gleichverteilt werden die Ereignisse auftreten. Zufall ist also abhängig von der Betrachtungsweise.

Gruß Hagen

Nikolas 27. Sep 2005 14:12

Re: Zufals-Boolean erzeugen
 
Zitat:

Dann müsst "ihr" aber den Titel ändern ... denn Zufälligkeit hat nix mit Gleichmäßigkeit zu tun ...
Das sehe ich nicht so. Wenn du das durchmischte array nimmst, bringt dir Anfangs die Information über die Verteilung von True und False recht wenig, wenn du den nächsten Wert vorraussagen willst. Gegen Ende wird die Vorraussage zwar einfacher, ab fast nie sicher.

leddl 27. Sep 2005 14:16

Re: Zufals-Boolean erzeugen
 
Zitat:

Zitat von Toxman
Zitat:

Dann müsst "ihr" aber den Titel ändern ... denn Zufälligkeit hat nix mit Gleichmäßigkeit zu tun ...
Das sehe ich nicht so. Wenn du das durchmischte array nimmst, bringt dir Anfangs die Information über die Verteilung von True und False recht wenig, wenn du den nächsten Wert vorraussagen willst. Gegen Ende wird die Vorraussage zwar einfacher, ab fast nie sicher.

Aber "Zufall" bedeutet, daß du ein Experiment beliebig oft unter genau den gleichen Voraussetzungen wiederholen kannst. Das ist hier aber dann nicht so. Im schlimmsten Fall kannst du nach 500 erzeugten Werte mit Sicherheit sagen, was die nächsten 500 ergeben. Das hat mit Zufall nichts mehr zu tun ;)

negaH 27. Sep 2005 14:19

Re: Zufals-Boolean erzeugen
 
@Toxman:

korrekt. Nicht die Gleichverteilung ist ein Indiz für Zufälligkeit, sondern so Vorhersagewahrscheinlichkeit des nächsten zu erwartenden Wertes. Man wird sich bei dieser Vorhersage mit exakt 50% irren oder ebnen richtig liegen, und das ist zufälliges Raten !

Gruß Hagen

Nikolas 27. Sep 2005 14:20

Re: Zufals-Boolean erzeugen
 
Zitat:

Aber "Zufall" bedeutet, daß du ein Experiment beliebig oft unter genau den gleichen Voraussetzungen wiederholen kannst.
Warum dass denn? Es geht doch viel eher darum, dass die zufälligen Elemente in meinem Exement möglichst selten gleich sein sollten.

Ich habe weiter oben im Thread schon gesagt, dass ich diese Methode mit dem Array.Mischen nicht allzu toll finde, nur war es anscheinend dass, was gesucht war.

negaH 27. Sep 2005 14:27

Re: Zufals-Boolean erzeugen
 
@leddl:

Zitat:

Aber "Zufall" bedeutet, daß du ein Experiment beliebig oft unter genau den gleichen Voraussetzungen wiederholen kannst. Das ist hier aber dann nicht so. Im schlimmsten Fall kannst du nach 500 erzeugten Werte mit Sicherheit sagen, was die nächsten 500 ergeben. Das hat mit Zufall nichts mehr zu tun

Du widersprichst dich ja im selben Satz ;)

Ein Experiment beliebig oft exakt reproduzieren kann man nur OHNE Zufall.
Angenommenes Experiment

1 +1 = 2

Dies lässt sich jederzeit exakt reproduzieren.

1 + Random(10) = 2

lässt sich nicht beliebig oft reporduzieren.

ABER, statistich gesehen, also im Mittel werden wir nun feststellen das bei diesem Experiment exakt 1/10 aller Experimente korrekte Lösungen bringen, und 9/10'tel immer falsche.

Diese statistische Aussage ist nun jederzeit exakt reproduzierbar vorrausgesetzt man mancht in der statistischen Auswertung genügend viele sochler Experimente. Je geringer diese Anzahl an Experimenten ist desto weniger sind die Ergebnisse reproduzierbar, je mehr man von solchen Experimenten durchführt desto mehr wird die statistische Auswertung reproduzierbar und sich mit einer unendlich großen Anzahl von Experimenten wird sich exakt das mathematich vorrausberechnete Schema von 1/10'tel zi 9/10'tel ergeben.

Gruß Hagen

leddl 27. Sep 2005 14:28

Re: Zufals-Boolean erzeugen
 
Zitat:

Zitat von Toxman
Warum dass denn? Es geht doch viel eher darum, dass die zufälligen Elemente in meinem Exement möglichst selten gleich sein sollten.

Warum? Weil es die Definition eines Zufallsexperimentes ist. Darum! ;) Wenn du durch dein Eingreifen die Wahrscheinlichkeiten änderst, kann eben einfach nicht mehr von Zufälligkeit gesprochen werden.

leddl 27. Sep 2005 14:34

Re: Zufals-Boolean erzeugen
 
@Hagen:
Du hast mich falsch verstanden. Mit den Voraussetzungen meinte ich die Voraussetzungen, unter denen sich die Wahrscheinlichkeiten ergeben. Also zB die 6 Seiten eines Würfels. Hättest du einen Würfel, bei dem beim Werfen immer Stücke abbrechen, könntest du das ganze nicht mit den selben Wahrscheinlichkeiten (=^ Voraussetzungen) wiederholen und hast damit eine Verfälschung. Natürlich wäre das in gewisser Hinsicht immer noch Zufall, aber ich denke, du weißt, worauf ich hinauswollte.


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:50 Uhr.
Seite 5 von 6   « Erste     345 6      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz