Es gibt eine schnellere (mit sehr kleiner Bias) und eine etwas langsamere Methode, die allerdings Gleichverteilung erzeugt. Der Einfachheit sollen bigints zwischen 0 und R-1 erzeigt werden. Wenn R n bits braucht, erzeugst Du ein bigint x mit n random bits.
Methode 1: random = x mod R (wie gesagt hier hast Du eine kleine Störung der Gleichverteilung, die allerdings umso kleiner ist, als R größer wird)
Methode 2:
Code:
repeat
x = n random bits
until x<R;
random = x;
Als einfachen cryptografischen Generator kannst Du
ISAAC von Bob Jenkins verwenden, statt des Pascal-Link auf seiner Seite kannst Du gleich direkt meine deutsche Seite gehen
WE's (C)PRNG.
Gammatester