Inverzivni generatori

 

Inverzivni generatori pseudoslučajnih brojeva (Inversive Congruential Generators) (ICG) su djelo Eichenauera i Lehna (1986). Trebamo izabrati modul p, množitelj a, dodatni uvjet b i početnu vrijednost y0.

 

Za zadani prirodni broj p, i za c Î Zp,

c':= 0 ako je c=0, te

c':=c-1 ako je c¹0.

To znači da je c' jednako broju cp-2 (mod p).

 

Sada možemo zadati jednakost:

 

yn+1 = ay'n + b (mod p), n³0

 

da dobijemo pripadni niz pseudoslučajnih brojeva u {0, 1, … , p-1}.

Zapis ovog generatora je:

 

ICG(p, a, b, y0)

 

Razlika u odnosu na LCG generatore je da u ICG generatorima nemamo strukture, brojevi se mogu nalaziti na bilo kojim mogućim mjestima, kao što je prikazano na donjoj slici, u regiji oko točke (0.5, 0.5).

 

ICG (231 – 1, 1288490188, 1, 0)

 

 

 

 

Eksplicitni inverzivni generatori

 

Eksplicitni inverzivni generatori pseudoslučajnih brojeva (Explicit Inversive Congruential Generators) (EICG) je poboljšana verzija ICG-a, zapravo lakša za implementiranje u praksi. Cijena toga je manja maksimalna veličina uzorka. Zasluge su pobrali Eichenauer-Herrmann (1993).

 

Izaberemo prirodni broj p, množitelj od a Î Zp, a ¹0, bÎ Zp, I početna vrijednost n0 u Zp.

 

Tada imamo:

 

yn=[a(n+n0)+b]'  (mod p), n³0

 

I pripadni niz pseudoslučajnih brojeva u {0, 1, … , p-1}.

 

Zapis:

EICG(p, a, b, n0)

 

Zanimljivo je da se isti pseudoslučajni niz može dobiti u dva zapisa:

EICG(p, a, b, n0)

EICG(p, a, 0,m0)

ako je m0 = n0 + a'b (mod p). U večini slučajeva se stavlja b=0.

 

 

Kombinirani generatori

 

Eichenhauer-Herrmann (1993, 1994) su uveli jednostavnu tehniku kombiniranja inverzivnih generatora, kombinirajući ICG i EICG.