Lineare Kongruenz Random.nextInt()

Neue Frage »

xice Auf diesen Beitrag antworten »
Lineare Kongruenz Random.nextInt()
Folgendes Problem...

Ich habe 2 aufeinanderfolgende Werte, die durch Java Random.nextint() erstellt worden sind.
Nun soll der dritte 3 Wert ermittelt werden.

Wert1: 2384822062
Wert2: 4015551696
Wert3: ?

Da Random ein linearer Kongruenzgenerator ist, folgt daraus:

x(n) = (a * x(n-1) + b) modulo m

4015551696 = ((a*2384822062) + b) modulo m

Wie könnte man effizient a, b, m berechnen ?

Mein Ansatz wäre 3 for-Schleifen programmieren und alle möglichen kombinationen
auszuprobieren um auf das Ergebnis zu kommen. Das dauert aber zu lange.
Iridium Auf diesen Beitrag antworten »

Hi,

Ist das eine Uni-Aufgabe oder eine persönliche Frage? D.h. willst du einfach nur die Parameter in dem konkreten Fall ermitteln, oder geht es darum, daß man ganz allgemein zeigt, daß lineare Kongruenzgeneratoren aus der Sequenz von Pseudozufallszahlen, die sie erzeugen, rekonstruiert werden können?

Prinzipiell kann man das nämlich, aber ob dazu nur zwei aufeinanderfolgende Werte reichen, bezweifele ich eigentlich. Wenn du nur wissen willst, welche Parameter Java konkret benutzt, wäre es sicher effektiver nach der entsprechenden Literatur zu suchen (die jeweiligen Spezifikationen), als es selbst ausrechnen zu wollen.

Gruß
Neue Frage »
Antworten »



Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »