Delphi-PRAXiS
Seite 1 von 14  1 2311     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Random ist kein reiner Zufall (https://www.delphipraxis.net/89462-random-ist-kein-reiner-zufall.html)

dino 31. Mär 2007 14:33


Random ist kein reiner Zufall
 
Liste der Anhänge anzeigen (Anzahl: 3)
Guten Morgen DP

ich habe gerade ne ganze seite über folgendes geschrieben und als ich fertig war ist der Internet Explorer abgeschmiert, darum hab ich nun kein Bock es nchmal alles zu schreiben

daher die kurzversion:

sun und ich haben entdeckt, dass die delphi zufallsfunktion etwas nicht zufälliges hat:

wir haben heute morgen um 2-4 uhr etwas mit dem 1. beiliegenden Programm rumgespielt, welches so lange random(3) aufruft, bis 0,1 und 2 gleich oft vorkahm
nun liegt der Wert,wie oft die zahlen vorkahmen auffallend oft sehr nahe zusammen

darauf habe ich eben ein Programm geschrieben, was immer wieder testet, bei welchem wert sich die drei anzahlen traffen und bekahm folgendes raus:


http://images.foren-city.de/images/u...4818/1_117.png
X-Achse sind die Durchläufe
Y-Achse(von unten nach oben) ist round(2*sqrt(sqrt(gemeinsamer wert)))

beiliegend die Werte als Text, das Programm von heute morgen(2 Uhr AM) und das Programm von eben

nun deute ich es so, dass, da die werte am Anfang 0 - 0 - 0 sind es immer weniger wahrscheinlich, dass sich die Werte treffen, doch dazu gibts noch einen schwellwert, bei dem sie sich treffen müssen, der damit zusammenhängt, was der Computer sonst noch so gerade macht

nun wollte ich fragen, was ihr so über random wisst

wenn ihr wollt geb ich euch ncoh die Programme oder einfach nur den Quelltext
sie sind an sich sehr einfach gehallten

inherited 31. Mär 2007 14:46

Re: Random ist kein reiner Zufall
 
Es gibt keine "Zufallsgeneratoren" sondern nur bessere oder schlechtere Algorithmen :warn:
Der Delphi-Zufallsgenerator benutzt für die Hilfen wie TickCount, Uhrzeit und Datum.

3_of_8 31. Mär 2007 14:47

Re: Random ist kein reiner Zufall
 
Random ist gar kein Zufall. Es ist ja auch ein "Pseudozufall". Random verwendet vermutlich den Satz von Weyl, initialisiert mit einem Startwert. Dadurch dürfte sich eigentliche eine asymptotische Gleichverteilung ergeben. Deine Ergebnisse hab ich nicht so ganz verstanden...

inherited 31. Mär 2007 15:00

Re: Random ist kein reiner Zufall
 
Vermutlich ja. Allerdings ist er nicht unbedingt kompatibel, die Delphi-Hilfe schreibt selbst, dass bei verschiedenen Delphi-Versionen trotz gleichem Seed verschiedene Zufallszahlen produziert werden *können*

dino 31. Mär 2007 15:03

Re: Random ist kein reiner Zufall
 
dass Random kein Zufall ist war uns klar, doch würde und interessieren, wie es sonst so ist

was haste denn an den Ergebissen nciht verstanden?

die y achse ist nichtlinear, das es sonst sehr unübersichtlich wäre, denn die top 12 sieht so aus:

1431655765
1431655765
1431655765
1431655764
1431655764
1431655764
1431655763
1431655761
1431655706
1431655693
1431655581
1431655532

dagegen sind einige tausend nichts
doch durch die nichtlineare achse sind die klleinen zahlen unterscheidbar ohne die grossen über alle massen gehen zu lassen (möchtest du auf einem centimeter die zahlen 1-100.000 sehen, dann liegt 1.431.655.532 bei 143 Meter

Cöster 31. Mär 2007 15:06

Re: Random ist kein reiner Zufall
 
Zitat:

Zitat von inherited
Der Delphi-Zufallsgenerator benutzt für die Hilfen wie TickCount, Uhrzeit und Datum.

Das mit Uhrzeit und Datum ist mir nicht bekannt. Der RandSeed wird beim Aufruf von Randomize wenn möglich auf den Var-Parameter von QPC gesetzt, sonst auf den TickCount.

Wenn Randomize nicht aufgerufen wird, wird der RandSeed mit 0 initialisiert.

Beim späteren Aufruf von Random wird der TickCount allerdings nicht mehr verwendet, sondern lediglich ein bisschen mit RandSeed und der sagenhaften Konstante $08088405 rumgespielt.

Was genau bei Random alles passiert, kann man auch in seiner Implementierung nachgucken. Dann ist auch klar, dass das kein wirklicher Zufall ist. Ich glaube aber kaum, dass es überhaupt möglich ist, echten Zufall zu erzeugen.

dino 31. Mär 2007 15:12

Re: Random ist kein reiner Zufall
 
Angefangen hats heute morgen mit einer disskussion, obs überhaupt zufall gibt oder nicht, womit ich von dem anderes aktuellen zufallsthread inspiriert anfing.

Doch glaube ich, dass es trotz alledem komisch ist, dass sie die werte so komisch verhallten

bzw. wurde es wohl entweder so geacht, dass die werte nicht völlig frei rumlaufen, oder es ist eine logische reaktion darauf, wie random programmiert wurde

was hats mit dieser konstante auff sich?

und überhaupt: was wisst ihr alles über Random

inherited 31. Mär 2007 15:25

Re: Random ist kein reiner Zufall
 
Zitat:

Zitat von dino
und überhaupt: was wisst ihr alles über Random

http://de.wikipedia.org/wiki/Zufall :mrgreen:

dino 31. Mär 2007 15:28

Re: Random ist kein reiner Zufall
 
ich weiss, was Zufall ist, ich rede von der Random funktion von Delphi! :)

Cöster 31. Mär 2007 15:28

Re: Random ist kein reiner Zufall
 
Zitat:

Zitat von dino
was hats mit dieser konstante auff sich?

kp ob es mit jeder anderen 4Byte-Konstante genauso gut ginge? Vielleicht kommt das Result aber auch bei dieser Zahl dem Zufall am nächsten.

Vielleicht könnte es für dich auch ganz interessant sein, einfach mal zu gucken, was bei einem Random-Aufruf im CPU-Fenster so alles abgeht. Dann kann man besser nachvollziehen warum und wie Random überhaupt funzt.


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:56 Uhr.
Seite 1 von 14  1 2311     Letzte »    

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