Metode Linear Congruent Method adalah sebuah metode pembangkitan bilangan acak, banyak di gunakan pada game atau permainan seperti sudoku, puzzle, dice dan lain-lain.
tujuan nya adalah untuk mengacak bilang agar si user atau si pengguna sulit untuk menebak angka yang akan muncul.
Bilangan acak yang berkualitas baik:
a. bila terjadi perulangan atau munculnya bilangan acak yang sama setelah sekian periode tertentu (semakin lama semakin baik)
b. bila terjadi perulangan kemunculannya tidak bisa diprediksi
Banyak aplikasi komputer bergantung pada random number generation. Misalnya, jika Anda ingin menulis sebuah program untuk mensimulasikan permainan poker, Anda tidak ingin setiap pemain mendapatkan kartu yang sama setiap tangan. Sejak beberapa program memerlukan sejumlah besar nomor acak, kita dapat mempercepat program dengan menggunakan metode di atas, lebih efisien nomor acak generator. Metode pengacakan nomor dengan metode congruential linier, bekerja dengan menghitung setiap nomor acak berturut-turut dari sebelumnya. Dimulai dengan nomor awal, Xo, metode congruential linier menggunakan rumus berikut:
Xi+1 = (A*Xi + C) mod M
Dalam bukunya, The Art of Computer Programming, Donald Knuth menyajikan beberapa aturan untuk memaksimalkan jangka waktu sebelum nomor acak generator datang dengan nilai yang sama seperti di awal. Hal ini diinginkan karena setelah nomor acak generator muncul dengan nomor awal, itu akan mulai mengulangi urutan yang sama angka acak (yang tidak akan begitu acak sejak kedua kalinya karena kita dapat memprediksi apa yang akan mereka). Menurut aturan Knuth, jika M adalah prima, kita dapat membiarkan C menjadi 0 dan dia menunjukkan bahwa varian ini baris
TEOREMA: (Oleh Greenberger pada tahun 1961)
contoh :
Contoh
carilah 3 bilangan acak mengunakan metode Multiplicative RNG,
dengan nilai awal
Z0=12357,
a=19,
c=237,
m=128.
Gunakan tingkat ketelitian 4 digit di belakang koma.
bilangan acak 1
Zi+1 = (a . Zi + c) mod m
= (19 . 12357 + 237) mod 128
= 235020 mod 128
= 12
R1 = Zi+1 / m
= 12 /128
= 0.0938
bilangan acak 2
Zi+1 = (a . Zi + c) mod m
= (19 . 12 + 237) mod 128
= 465 mod 128
= 81
R1 = Zi+1 / m
= 81 /128
= 0.6328
bilangan acak 3
Zi+1 = (a . Zi + c) mod m
= (19 . 81 + 237) mod 128
= 1776 mod 128
= 112
R1 = Zi+1 / m
= 112 /128
= 0.875
tujuan nya adalah untuk mengacak bilang agar si user atau si pengguna sulit untuk menebak angka yang akan muncul.
Bilangan acak yang berkualitas baik:
a. bila terjadi perulangan atau munculnya bilangan acak yang sama setelah sekian periode tertentu (semakin lama semakin baik)
b. bila terjadi perulangan kemunculannya tidak bisa diprediksi
Banyak aplikasi komputer bergantung pada random number generation. Misalnya, jika Anda ingin menulis sebuah program untuk mensimulasikan permainan poker, Anda tidak ingin setiap pemain mendapatkan kartu yang sama setiap tangan. Sejak beberapa program memerlukan sejumlah besar nomor acak, kita dapat mempercepat program dengan menggunakan metode di atas, lebih efisien nomor acak generator. Metode pengacakan nomor dengan metode congruential linier, bekerja dengan menghitung setiap nomor acak berturut-turut dari sebelumnya. Dimulai dengan nomor awal, Xo, metode congruential linier menggunakan rumus berikut:
Xi+1 = (A*Xi + C) mod M
Dalam bukunya, The Art of Computer Programming, Donald Knuth menyajikan beberapa aturan untuk memaksimalkan jangka waktu sebelum nomor acak generator datang dengan nilai yang sama seperti di awal. Hal ini diinginkan karena setelah nomor acak generator muncul dengan nomor awal, itu akan mulai mengulangi urutan yang sama angka acak (yang tidak akan begitu acak sejak kedua kalinya karena kita dapat memprediksi apa yang akan mereka). Menurut aturan Knuth, jika M adalah prima, kita dapat membiarkan C menjadi 0 dan dia menunjukkan bahwa varian ini baris
TEOREMA: (Oleh Greenberger pada tahun 1961)
contoh :
Contoh
carilah 3 bilangan acak mengunakan metode Multiplicative RNG,
dengan nilai awal
Z0=12357,
a=19,
c=237,
m=128.
Gunakan tingkat ketelitian 4 digit di belakang koma.
bilangan acak 1
Zi+1 = (a . Zi + c) mod m
= (19 . 12357 + 237) mod 128
= 235020 mod 128
= 12
R1 = Zi+1 / m
= 12 /128
= 0.0938
bilangan acak 2
Zi+1 = (a . Zi + c) mod m
= (19 . 12 + 237) mod 128
= 465 mod 128
= 81
R1 = Zi+1 / m
= 81 /128
= 0.6328
bilangan acak 3
Zi+1 = (a . Zi + c) mod m
= (19 . 81 + 237) mod 128
= 1776 mod 128
= 112
R1 = Zi+1 / m
= 112 /128
= 0.875
Metode Linear Congruent Method - Pembangkitan Bilang Acak dengan metode LCM
4/
5
Oleh
Holong.Me