Algoritma numerik untuk bilangan acak menjelaskan tentang bilangan acak, kebutuhan komputer akan bilangan acak, dan cara komputer menghasilkan bilangan acak secara deterministik menggunakan algoritma seperti Middle Square dan Linear Congruential Generator."
2. Bilangan Acak?
Bilangan yang tidak dapat diprediksi. Biasa digunakan
untuk game hingga dibidang kriptografi, seperti ; untuk
pembangkitan parameter kunci pada algoritma kunci-
publik, pembangkitan initialization vector (IV) pada
algoritma kunci-simetri, dan sebagainya
2
3. Komputer perlu random number
untuk menenkripsi informasi,
keperluan game, bisa juga untuk
simulasi variable untuk prediksi
cuaca, penjadwalan pesawat, dan
masih banyak lagi
3
6. Deterministik
6
Komputer hanya bisa mengikuti perintah yang telah disiapkan/diberikan oleh software,
Malahan inti dari software adalah untuk melakukan perhitungan matematika lalu dsimpan
Distorage dan melakukan pemilihan mana perintah yg harus dijalankan dari
Membandingkan 2 angka, dan memilih yang paling besar.
7. 7
In a sense, there is no such thing as a random
number. For example, is 2, a random number?.
Rather, we speak of a sequence of independent
random numbers with a specified distribution.
- Donald Knuth
8. 8
Masih ingat Probabilitas Dadu ?
Untuk menciptakan perkiraan dari hasil dadu, diperlukan random number [X0,X1,β¦β¦] setiap dari random
Number tadi memiliki peluang sebesar 1/6 untuk menjadi setiap angka yang ada di antara 1 sampai 6.
Ini yang dimaksud distribusi yang telah ditentukan.
10. β Bisa menhasilkan deret
random number, tapi
computer bergantung
pada eksternal input yang
berasal dari proses acak
dari dunia nyata.
β Contoh : Geiger Counter,
mengambil data dari
radiasi. Deret angka yang
dihasilkan akan random,
karena radiasi itu pasti
random.
β Kekurangan :
1 . Tambah hardware
2. Lambat
3. Deret Tidak dapat diulang
10
11. Sampai sekarang masih jarang dibutuhkan random
number yang asli, maka computer bisa menghasilkan
random number dari proses deterministic. Bilangan
acak ini disebut bilangan acak semu (pseudo), pseudo-
random numbers adalah deret angka yang mana
kelihatannya acak tapi sebenarnya tidak. Karena
dihasilkan dari perhitungan matematika biasa dan ada
polanya.
11
13. Linear Congruential Generator
β Memiliki 4 input, modulus [M], pengkali [A], increment [C], seed [S]
β M = 7829, A=378 C = 2310, S = 4321
β S * A + C mod M
β 4321 * 378 + 2310 mod 7829
β 7216
β Xn+1 = Xn * A + C mod M
β Rentang random number = 7828 [M-1]
13
14. β
β Cara menentukan seed
biasanya di ambil dari jam.
Misal diambil dari millisecond
sebelum besok.
β Kurang 70.483.475, berarti
70483475 modulo 11 = 7 ->
seed
14
17. Perlu diingat bahwa keuntungan dari
pseudonumbers adalah seed, untuk testing
program. Supaya sequence[deret] mudah
ditiru.
β Keuntungan pseudorandom numbers :
1. Mudah ditiru [Karena seednya]
2. Tidak perlu alat tambahan
3. Efisien
β Kekruangan :
BUKAN random number asli, tapi bisa
dibuat lebih mirip asli atau bahkan kurang
mirip.
17
MSA LCA
4321 4321
6710 7216
241 5466
580 1602
3364 5033
3164 2337
108 1019
18. Apa standar keacakan dari suatu
deret?
β Tidak ada
β Hanya ada tes statistic saja, contoh moving average, mean atau
track saja histori dari deret itu untuk mengetahui berapa kali
deret terulang.
18
19. Contoh : 2916 [MSA]
2916
5030
3009
540
2916
19
Periode
[0,9999]
Tidak mungkin angka yang dihasilkan lebih dari 10.000 angka di satu deret
Periode nya itu tidak munkin lebih dari 4096