Metode Midsquare dalam pembangkitan bilangan acak.

Metode ini ditemukan oleh John von Neumann dan Metropolis (1940). Langkah-langkah dalam membangkitkan bilangan acak menggunakan metode ini antara lain:

  • Pilih bilangan bulat positif sebagai seed (Z0) yang berupa bilangan bulat positif yang terdiri dari beberapa digit.
  • Kuadratkan bilangan tersebut sehingga membentuk digit sejumlah dua kali jumlah digit Z0, jika tidak, tambahkan digit 0 di depan bilangan tersebut.
  • Ambil sejumlah digit yang sesuai dengan jumlah digit Z0 yang berada di tengah untuk menjadi Z1.
  • Tambahkan digit desimal di depan Z1.
  • Lakukan sampai langkah ke-n.

Contoh:

Dimulai dengan Z0 = 1113 (hasil bilangan random = Ui)

i Zi Ui (Zi)2
0 1113 01238769
1 2387 0,2387 05697769
2 6977 0,6977 48678529
3 6785 0,6785 46036225
4 0362 0,0362 00131044
5 1310 0,131 01716100
6 7161 0,7161 51279921
7 2799 0,2799 07834401
8 8344 0,8344 69622336
9 6223 0,6223 38725729
10 7257 0,7257 52664049
11 6640 0,664 44089600
12 0896 0,0896 00802816
13 8028 0,8028 64448784
14 4487 0,4487 20133169
15 1331 0,1331 01771561
16 7715 0,7715 59521225
17 5212 0,5212 27164944
18 1649 0,1649 02719201
19 7192 0,7192 51724864
20 7248 0,7248 52533504
21 5335 0,5335 28462225
22 4622 0,4622 21362884
23 3628 0,3628 13162384
24 1623 0,1623 02634129
25 6341 0,6341 40208281
26 2082 0,2082 04334724
27 3347 0,3347 11202409
28 2024 0,2024 04096576
29 0965 0,0965 00931225
30 9312 0,9312 86713344
31 7133 0,7133 50879689
32 8796 0,8796 77369616
33 3696 0,3696 13660416
34 6604 0,6604 43612816
35 6128 0,6128 37552384
36 5523 0,5523 30503529
37 5035 0,5035 25351225
38 3512 0,3512 12334144
39 3341 0,3341 11162281
40 1622 0,1622 02630884
41 6308 0,6308 39790864
42 7908 0,7908 62536464
43 5364 0,5364 28772496
44 7724 0,7724 59660176
45 6601 0,6601 43573201
46 5732 0,5732 32855824
47 8558 0,8558 73239364
48 2393 0,2393 05726449
49 7264 0,7264 52765696
50 7656 0,7656 58614336
51 6143 0,6143 37736449
52 7364 0,7364 54228496
53 2284 0,2284 05216656
54 2166 0,2166 04691556
55 6915 0,6915 47817225
56 8172 0,8172 66781584
57 7815 0,7815 61074225
58 0742 0,0742 00550564
59 5505 0,5505 30305025
60 3050 0,305 09302500
61 3025 0,3025 09150625
62 1506 0,1506 02268036
63 2680 0,268 07182400
64 1824 0,1824 03326976
65 3269 0,3269 10686361
66 6863 0,6863 47100769
67 1007 0,1007 01014049
68 0140 0,014 00019600
69 0196 0,0196 00038416
70 0384 0,0384 00147456

 

Menguji bilangan acak yang dibangkitkan.