Zufallszahl mit 128 Bit

Ferum

Mitglied
Hallo Zusammen,

ich stehe vor folgender Problematik:
Ich benötige ein Coding mit dem ich 128-Bit Zufallszahlen erstellen kann. Die Zahlen dürfen auch nicht doppelt vorkommen, sollte bei 128-Bit aber an sich schon recht unwahrscheinlich sein.

Ich habe mir schon den Mersenne-Twister angeschaut. Dort lese ich aber immer nur 32- bzw. 64-Bit.

Hat vielleicht einer von euch eine Idee die mir weiter hilft?

Vielen Dank im voraus.

Gruß,
Ferum
 
Hi,

hast du einen Datentyp, der eine 128Bit-Zahl darstellen kann? ;)

Ich würde einfach 2x 64 Bit oder 4x 32 Bit Zahlen erstellen und diese dann einfach mit einem & an einander hängen. Kommt sich auf das selbe raus.

Warum nicht doppelt vorkommen? Theoretisch ist es möglich, dass ein Zufallszahlengenerator 2x hintereinander die selbe Zahl rausgibt...

Gruß
BK
 
Hi,

hmm, gutes Argument. Also du meinst zweimal den Algorithmus durchlaufen und dann hintereinander in einen String schreiben. Der kann ja genug Zeichen aufnehmen. ;-)

Das mit dem doppelt vorkommen ist leider Teil der Anforderung. Ich hatte mir das so gedacht, dass ich mir alle Zufallszahlen in einer Datei merke und hinterher suche ob ich diese schon hatte.

Gruß,
Ferum
 
Hi,

dann ist das ganze aber nicht mehr zufällig und mit jeder bereits bekannten Zahl steigt die Wahrscheinlichkeit, die nächste vorherzusagen...

// Edit:
Würde das ganze nicht in einem String speichern, wie willst du damit denn später weiterarbeiten?
C:
struct rnd128 {
  uint64_t hi;
  uint64_t lo;
};
"hi" steht für die höherwertigen Bits, "lo" für die niederwertigen.

Gruß
BK
 
Zuletzt bearbeitet:
Zurück