Penerapan Algoritma LCM di Delphi

Linear Congruent Method atau sering kita sebut LCM adalah  metode pembangkit bilangan acak yang banyak digunakan dalam program komputer. LCM memanfaatkan model linier untuk membangkitkan bilangan acak yang didefinisikan dengan :


Di mana:

xn = adalah bil. acak ke n
a dan c adalah konstanta LCM
m adalah batas maksimum bilangan acak
Ketentuan-ketentuan pemilihan setiap parameter pada persamaan di atas adalah sebagai berikut:
a. m = modulus, 0 < m
b. a = multiplier (pengganda), 0 < a < m
c. c = Increment (pertambahan nilai), 0 ≤ c < m
d. X0 = nilai awal, 0 ≤ X0 < m
e. c dan m merupakan bilangan prima relatif
f. a – 1 dapat dibagi oleh faktor prima dari m
g. a – 1 merupakan kelipatan 4 jika m juga kelipatan 4
h. a harus sangat besar

Sumber : Wikipedia


Ciri khas dari LCM adalah terjadi pengulangan pada periode waktu tertentu atau setelah sekian kali pembangkitan, hal ini adalah salah satu sifat dari metode ini, dan pseudo random generator pada umumnya. Penentuan konstanta LCM (a, c dan m) sangat menentukan baik tidaknya bilangan acak yang diperoleh dalam arti memperoleh bilangan acak yang seakan-akan tidak terjadi pengulangan. Jadi menurutku gampangannya pengertiannya adalah untuk pengacak bilangan.

Kode program dasar LCM 


a = ...
c = ...
m = ...
For i=1 to ...
x(i) = (a * x(i-1) + c) mod m
if x(i) = 0 then x(i) = ...
write(x(i))
Next i

Penerapan Kode Program LCM di Delphi



Var
m,i:integer;
a,c,l,h,x:real;
Begin
a :=...;
c :=...;
m :=...;
For i:=1 to 50 do
l:= a * (x+c);
h:= l - int(l/m) * m;
if h = 0 then h := 15;
label1.Caption := FloatToStr(h);
end;

Jika masih bingung tutorialnya ada di channel youtube Pambudi Satria.



Terima kasih telah membaca,selamat mencoba,semoga beruntung, dan sampai jumpa kembali dipertemuan lainnya.
Previous
Next Post »