Delphi-PRAXiS
Seite 1 von 5  1 23     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Wie zufällig ist Random(x)? (https://www.delphipraxis.net/24127-wie-zufaellig-ist-random-x.html)

Touchdown 15. Jun 2004 23:35


Wie zufällig ist Random(x)?
 
Eigentlich ist doch alles recht logisch in der Programmierung, doch eine Funktion die irgendeine Zahl zurück geben soll ist doch eigentlich absolut untypisch.

Wie würdet ihr Random nachschreiben (hätte da leichte Probleme sowas unlogisches zu coden :roll: )?

Falls ihr was habt, wie zufällig ist diese Zahl dann. Oder gibt es dann immer noch Zahlen die öfter vorkommen als andere?

Wie schauts mit Random aus, absolut zufällig oder bedarf es einer neuen Version? :mrgreen:

flomei 15. Jun 2004 23:38

Re: Wie zufällig ist Random(x)?
 
Darüber habe ich auch schon oft nachgedacht.

Wie zufällig ist zufällig?

Irgendwie muss der Computer ja auch "zufällige" Zahlen berechnen. Aber nach welchem Schema oder nach welchem Verfahren?

MfG Florian :hi:

supermuckl 15. Jun 2004 23:44

Re: Wie zufällig ist Random(x)?
 
eine möglichkeit von vielen ist das rauschen einer diode ( mit einer elektronischen schaltung ) zu digitalisieren und dadurch die gewünschten zufallszahlen zu erzeugen

könnte vielleicht in der FPU stecken oder sonstwo im prozessor.. weil auf rein programmiertechnischer weise lässt sich das wohl nicht "zufällig genug" lösen.. gibt ja immerhin sehr viele security algorithmen die darauf aufsetzen und dadurch sicher sein müssen.. ja es gibt auch extra hardware die noch zufälligere und sichere zufallszahlen erzeugt.. aber das is eher was für bank servern und hochsicherheits anwendungen

wie das im pc haargenau funzt kann ich nur vermuten

dizzy 15. Jun 2004 23:52

Re: Wie zufällig ist Random(x)?
 
Letzten Endes kann ein Computer nur pseudozufällige Zahlen liefern die, so man das Verfahren + Startwert/Randbedingungen kennt, völlig deterministisch sind. Das ist nun mal prinzipbedingt (auch wenn man hier und da mal meint ein PC hätte mehr mit Unlogik zu tun als anders herum ;))

Soweit ich das beurteilen kann liefert die Random-Funktion in Delphi eine sehr homogene Verteilung der Werte (bei scheinbar beliebigen Mengen an generierten Werten), und erweckt einen sehr guten Anschein von Zufälligkeit. Das Verfahren ist imho auch nicht wirklich trivial und ist schon eine ordentliche Denkleistung gewesen (es hat auch glaube ich einen Namen - der mir aber leider entfallen ist...)

Mich persönlich dürstet es nicht unbedingt nach Ersatz, wobei es aber niemals schaden kann die Wahl zu haben :)

gruss,
dizzy

\\edit: Diodenrauschen ist eine schöne Sache, da es sich meine ich um einen Quanteneffekt handelt (jede elektrische Leitung rauscht immer und minimal dadurch). Das wäre dann nur noch seeeehr seeeehr schlecht vorhersehbar ;) (Bleibt generell die Frage: Wie "zufällig" kann überhaupt etwas sein? Aber nu, ist ja kein Philosophie-Forum hier :D)

flomei 15. Jun 2004 23:56

Re: Wie zufällig ist Random(x)?
 
Dann stellt sich mir aber doch die (philosophische) Frage ob es überhaupt Zufälle gibt.
Seit Newton wissen wir, dass actio = reactio gilt.
Demzufolge gibt es keine Zufälle oder die Zufälle sind Reaktionen auf Ereignisse... Oder?

MfG Florian :hi:

[edit] Jetzt editiert der da noch meine Frage mit rein... :roll: [/edit]

dizzy 16. Jun 2004 00:01

Re: Wie zufällig ist Random(x)?
 
Zitat:

Zitat von flomei
[edit] Jetzt editiert der da noch meine Frage mit rein... :roll: [/edit]

Nana, "der da"... :mrgreen:
Aber die Frage zwang sich einem so schön auf *g*

Stefan Hueg 16. Jun 2004 00:02

Re: Wie zufällig ist Random(x)?
 
Wie Zufallszahlen generiert werden steht hier ausführlichst. Sie werden kompliziert mathematisch berechnet und weisen nach genügend langer Ausführungszeit eine gewisse Regelmäßigkeit auf. Sie werden auch Pseudozufallszahlen (siehe wikipedia) genannt da sie durch einen determinantischen Algorithmus generiert werden (siehe wikipedia).

Es gibt jedoch neuerdings eine PCI-Steckkarte, die Zufallszahlen generieren kann. Dabei werden Photonen durch ein halb-durchlässiges Plättchen (keine Ahnung welcher Stoff) geschossen. Da aus einer Lichtquelle die Photonen zufällig austreten, bedeutet dies dass die Zufallszahl einzigartig und nicht linear ist. Der Auftreffpunkt ist die Zufallszahl (wenn ich mich richtig erinnere). Wurde mal bei Heise gepostet, ich finde den Link aber nicht mehr.

Eine weitere interessante Sache ist Quantenkryptographie. Siehe hier.

So ich hoffe ich konnte Licht ins Dunkel bringen ;) Hab mir auch viel Mühe geben ^^

Nicodius 16. Jun 2004 05:22

Re: Wie zufällig ist Random(x)?
 
also ich weiß nur das sich delphi beim zufall die Uhrzeit zu hilfe nimmt

Tubos 16. Jun 2004 06:18

Re: Wie zufällig ist Random(x)?
 
Wobei GetTickCount auch wieder ungenau wäre, das geht ja nur auf 5 ms.
Und wenn man schnell hintereinander die random-funktion aufruft und die mit GetTickCount funktioniert, ist es auch wieder nicht mehr so zufällig.
Ich glaube aber auch nicht, dass sie das mit QueryPerformanceCounter gemacht haben...aber irgendwie sind die Zahlen dann doch zufällig :stupid:

Brüggendiek 16. Jun 2004 07:25

Re: Wie zufällig ist Random(x)?
 
Hallo!

Zitat:

Zitat von Nicodius
also ich weiß nur das sich delphi beim zufall die Uhrzeit zu hilfe nimmt

Das ist so nicht richtig!

Die Funktion "Random" berechnet den nächsten Wert aus der globalen Variablen "RandSeed". Bei gleichem Wert von RandSeed und gleichem Wertebereich kommt immer dasselbe heraus!

Die Prozedur "Randomize" setzt RandSeed auf einen aus der Uhrzeit stammenden Wert.
Folge: Randomize vor jedem Random erzeugt bei hinreichend schnellem Aufruf mehrfach dieselbe Zahl (Uhrzeit hat sich zwischen den Aufrufen nicht geändert).

Das manuelle Setzen von RandSeed vor den Randoms auf einen festen Wert ergibt bei jedem Programmaufruf dieselbe Folge von "Zufallszahlen". Allerdings weist Borland darauf hin, daß bei späteren Delphi-Versionen die Implementierung von Randon geändert werden könnte, so daß dann die Zahlenfolge eine andere wäre (Programm kann nicht auf neuere Versionen portiert werden).

Gruß

Dietmar Brüggendiek


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:47 Uhr.
Seite 1 von 5  1 23     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