Forum: Algorithmen, Datenstrukturen und Klassendesign
by Uwe Raabe,
3. Mai 2022
Ich denke, es kommt auf die konkreten Anforderungen an. Selbst bei einem Generator, der die vollständige Wertemenge liefern kann, wird diese ja vermutlich zu Lebzeiten des Entwicklers nicht generiert werden. Somit bleiben auch so Lücken in den generierten Werten. Werden dann auch nur zufällige Zahlen gebraucht, ohne irgendwelche kryptografische Sicherheitsanforderungen, dann sollten 2 x 32 Bit...
Forum: Algorithmen, Datenstrukturen und Klassendesign
by Uwe Raabe,
23. Apr 2022
Probleme bereiten könnte die Skalierung auf den Range. Bei 32-Bit wird das im 64-Bit Bereich erledigt. Für 64-Bit müsste dann 128-Bit Arithmetik verwendet werden. Ein simples Teilen und Zusammensetzen von zwei 32-Bit Randoms wird nicht so richtig funktionieren.
Forum: Algorithmen, Datenstrukturen und Klassendesign
by Uwe Raabe,
23. Apr 2022
Vielleicht klappt dies besser:
Function RandomRange(Const AFrom, ATo: UInt64): UInt64;
Begin
Result:= Round(Random*(ATo - AFrom)) + AFrom;
End;