Sebuah urutan bilangan integer Z1, Z2, Z3, … didefinisikan dengan formula rekursikutif sebagai berikut:

Zi = (aZi-1 + c) mod(m)

a adalah multiplier, c adalah increment, dan m adalah modulus (hukum Law & Kelton 2000).

Contoh: kita melakukan lima replikasi dari sebuah simulasi. Untuk menjalankan model simulasi, satu replikasi memerlukan 1000 kali penggunaan pembangkit bilangan acak selama simulasi dilakukan. Itu artinya kita memerlukan sebuah pembangkit bilangan acak dengan panjang siklus (cycle length) sedikitnya 5000.

Panduan untuk memilih a, c dan m untuk mewujudkan panjang siklus maksimum (maximum cycle length) :

  • m = 2, dimana b ditentukan berdasarkan jumlah bit per kata dalam komputer yang digunakan. Sebagian komputer menggunakan 32 bit per kata, sehingga angka 31 merupakan pilihan yang baik untuk b
  • c dan m sedemikian sehingga faktor persekutuan terbesar (greatest common factor) adalah 1 (integer positif satu-satunya yang membagi m dan c adalah 1)
  • a = 1 + 4k, dimana k adalah bilangan integer

Panjang siklus maksimum yang dapat dicapai sebuah LCG adalah m LCG dapat mencapai panjang siklus penuh lebih dari 2.1 milyar (231 tepatnya) bilangan acak!

Hyperplanes of a linear congruential generator in 3 dimensions

Panjang rentetan bilangan acak dapat dibagi-bagi dalam segmen yang lebih kecil, yang disebut aliran/stream. Contoh misalnya stream 1: pola kedatangan mobil ke jendela restoran drive-through; stream 2: waktu yang diperlukan oleh pengemudi untuk memesan.

Dua tipe LCG:

  • Mixed congruential generators: c>0
  • Multiplicative congruential generators c=0 (lebih efisien dari mixed generator tidak memerlukan penambahan c

Promodel menggunakan multiplicative generator Zi= (630,360,016Zi-1) mod(231-1)