Yazan : Şadi Evren ŞEKER
Rastgele sayı üretmek için kullanılan yöntemlerden birisidir. Aslında tam olarak sayıların rasgele üretildiği söylenemez. Daha çok belirli bir aralıktaki sayıların moduler bir fonksiyonlar belirli periyotlarda tekrarlandığını söylemek doğru olur.
Örneğin doğrusal ahenk methodu (linear congruential method) aşağıda verilmiştir:
f(n+1) = a f(n) + b mod p
Yukarıdaki bu gösterimde bir sonkaki üretilecek olan sayı, bir önce üretilmiş olan sayının ( f(n) ) bir sabit ile çarpımı ( a ) ve bir sabit kadar fazlasının ( b ), p tabanında modunun alınmasıdır.
Sayıların verilen aralığı tam olarak dolaşabilmesi için gerçekten a, b, ve p değerlerinin doğru seçilmesi gerekir.
Örneğin f(n+1) = 3 f(n) + 2 mod 7 formülünün f(0) = 1 ile oluşturduğu ahenk sınıfını (congruent class) bulalım:
f(1) = 3 + 2 mod 7 = 5
f(2) = 3 . 5 + 2 mod 7 = 3
f(3) = 3 . 3 + 2 mod 7 = 4
f(4) = 3 . 4 + 2 mod 7 = 0
f(3) = 3 . 0 + 2 mod 7 = 2
f(3) = 3 . 2 + 2 mod 7 = 1
Görüldüğü üzere yukarıdaki sınıfta 0,1,2,3,4,5 sayıları sırayla oluşturulmaktadır. ve bu seri 5,3,4,0,2,1 sırasına göre üretilmekte ve seri (sequence) kendisini tekrarlamaktadır. Şayet seçimi biraz daha dikkatsiz yapsaydık:
Örneğin f(n+1) = 3 f(n) + 5 mod 7 formülünün f(0) = 1 ile oluşturduğu ahenk sınıfını (congruent class) bulalım:
f(1) = 3 + 5 mod 7 = 1
f(2) = 1
…
görüldüğü üzere bütün f fonksiyonları 1 sonucunu çıkarmaktadır. Dolayısıyla sürekli olarak 1 sayısı üretilmektedir ki bu da istenmeyen bir durumdur.