Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by BUG,
7. Feb 2014
Das mod 32 wird schon durch den Wertebereich von longint erledigt. Das Shiften ist zum Aufbereiten der Ausgabe.
Man kann das auf Bitebene regeln. Andererseits kann man einfach 2^32-1 durch die 32bit Zufallszahl teilen (nicht durch 0 teilen).
Satty67 hat sich hier auch ein paar Möglichkeiten überlegt.
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by BUG,
30. Jan 2014
Was heißt hier sicher? Für kryptographische Anwendungen sind beide Generator-Typen nicht geeignet.
Der Unterschied ist aber trotzdem wichtig, z.B. wenn man randomisierte Algorithmen einsetzen will (Monte-Carlo-Simulation, usw.).
Wenn du Spaß mit Verschlüsselung haben willst, programmiere lieber einen Standard nach :mrgreen:
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by BUG,
30. Jan 2014
Um es nochmal zusammenzufassen: Delphi verwendet einen linearen Kongruenzgenerator während FreePascal einen Mersenne Twister benutzt.
Das heißt, dass Delphi einen sehr schnellen, aber für viele ernsthafte Anwendungen von Zufallzahlen unbrauchbaren, Generator hat. Dafür ist der Generator von FreePascal langsamer.
Auf Wikipedia gibt es auch eine schöne Übersicht.