Nach Wikipedia ein Kongruenzgenerator durch die Rekursionsformel zur Berechnung unten definiert ist:Wie die k-ten kleinsten Nummer eines Kongruenzgenerator
X(n) = {a.X(n-1) + c} mod m
wo 0 < m
, 0 <= a < m
, 0 <= c < m
, 0 <= X(0) < m
integer sind Konstanten, die den Generator angeben.
Wenn der Wert von a
, c
, m
, X(0)
und n
gegeben sind, kann ich den k
-ten kleinsten Wert (1 <= k <= n
) des Satzes {X(0), X(1), ..., X(n)}
sehr schnell bestimmen? (Schneller als O(n)
- Basis von Algorithmus Sortierung)
Wenn die LCG richtig ausgelegt ist, hat sie einen Bereich von '{0..m}', so dass das k-kleinste 'X (i)' wahrscheinlich 'k-1' ist. – RBarryYoung
Diese Frage würde auch gut auf mathe.stackexchange.com passen. – felix
@RBarryYoung: Nicht für ein gegebenes 'n' weniger als der Zeitraum. –