Einzelnen Beitrag anzeigen

Michael II

Registriert seit: 1. Dez 2012
Ort: CH BE Eriswil
763 Beiträge
 
Delphi 11 Alexandria
 
#17

AW: Delphi 11 kein RandomRange für 64-bits?

  Alt 2. Mai 2022, 14:10
Ja genau. Und deshalb kann man bei den "krypto-sicheren" auch beliebig generierte 1/8/16/32 Bit Werte aneinanderhängen bis genug. Man ist nicht auf einen 64Bitter angewiesen.

Ein 64Bit Generator kann aber natürlich trotzdem sinnvoll sein, wenn dieser für die jeweilige Verwendung mehr Speed bringt.

Nebenbei: Eine Zusammenfassung von Methoden wie man von einem durch den Generator erzeugten n-Bit Wert in einen gewünschten Bereich [0,ARange[ abbildet gibt es zum Beispiel hier.

(U.a. wird im Paper auch die von Delphi verwendete Methode beschrieben. - Beim Pseudozufallsgenerator von Delphi wird der erzeugte 32 Bit Wert als Bruch in [0..1[ interpretiert und mit ARange multipliziert. Der ganzzahlige Wert des Resultats wird ausgegeben. Dadurch werden einige Zahlen m Mal erzeugt, andere (ausser wenn ARange¦2'32) m+1 Mal. Bei sehr grossem ARange wird m=1 => random(ARange) gibt dann gewisse Zahlen (m=1+1 Mal) doppelt so häufig aus wie andere. => Bereits für Werte von ARange viel kleiner als 2^32 macht - wenn man die Zahlen wirklich pseudozufällig im "Delphi Style" erzeugt haben will - die Verwendung von random64(ARange) [siehe oben] Sinn.)
Michael Gasser
  Mit Zitat antworten Zitat