Einzelnen Beitrag anzeigen

Benutzerbild von negaH
negaH

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

Re: Unbegrenzt viele Nachkommastellen

  Alt 23. Sep 2004, 13:44
Zitat:
die funktion NRnd liefert aber immer zahlen die ähnlich sind
Kannst du genauer sagen was du unter "ähnlich" verstehst ?
Meinst du das nach dem Start der Anwendung immer wieder mit den gleichen Zahlen begonnen wird ?
Oder meinst du das die Zahlen alle im gleichen Wertebereich liegen, zB. eben immer 512 Bits -> 2^512 <= x < 2^513 liegen ?

Über den Parameter vom Typ TRandom kannst du deinen eigenen Zufallsgenerator übergeben. Sei es ein komplett anderer Zufallsgenerator oder nur eine eigene Instanz, sprich eigene Kopie mit eigenen Initialisierungsparamatern.
Aber normalerweise sollte der RNG vom DEC, ein LFSR mit maximaler Periode von 2^2048, vollkommen ausreichend und sicher sein. Wird einer Funktion die eine TRandom-Instance benötigt stattdessen NIL übergeben so wird diese Funktion intern den RND aus der Unit RNG.pas benutzen.

Wie bei jedem Pseudozufalls-Generator gibt es immer zwei Dinge zu beachten:
1.) die Periode und Komplexität bestimmt die kryptographische Sicherheit des Algos. TRandm_LFSR im DEC ist ein sehr sicherer LFSR da er intern mit mindestens 128 Bit Registerbreite arbeitet.
2.) jeder PRNG muß initialisiert werden und diese Initialisierung bestimmt dann welche Zufallsbits erzeugt werden. D.h. das Seed-Register des RNGs bestimmt was für Bits -> IInteger-Zahlen, erzeugt werden. Wird also dieses Seedregister immer auf den gleichen Wert initialisiert so MÜSSEN durch diesen RNG die selben Zahlen erzeugt werden. Um immer unterschiedliche Zahlen zu erzeugen muß man dieses Seed Register also beim Start der Anwendung mit anderen Werten füllen, wie beim Delphi Random() mit Randomioze() möglich.
Nun, aber diese Initialisierung ist der kryptograühisch kritischste Moment. Werden schlechte Werte dafür benutzt, sprich sind diese reproduzierbare Werte, so ist der komplette Output dieses Generators als unsicher einzustufen !! Andererseits ist es für mathematische/statistische Berechnungen absolut wichtig das ein RNG immer wieder reproduzierbare Zufallswerte erzeugt. Demzufolge darf eine beliebige Random-Bibliothek niemals einen Zufallsgenerator mit igendwelchen Werten initialisieren, dies muß immer Aufgabe des Programmierers und Nutzers dieser Library durchführen. Also DU


Gruß Hagen
  Mit Zitat antworten Zitat