mencatat
Pada BSD dan OSX Anda dapat menggunakan jot untuk mengembalikan nomor acak tunggal ( -r
) dari interval min
ke max
, inklusif.
$ min=5
$ max=10
$ jot -r 1 $min $max
Masalah distribusi
Sayangnya, jangkauan dan distribusi angka yang dihasilkan secara acak dipengaruhi oleh fakta bahwa jot menggunakan aritmatika floating point presisi ganda secara internal dan printf (3) untuk format output, yang menyebabkan masalah pembulatan dan pemotongan. Oleh karena itu, interval min
dan max
dihasilkan lebih jarang seperti yang ditunjukkan:
$ jot -r 100000 5 10 | sort -n | uniq -c
9918 5
20176 6
20006 7
20083 8
19879 9
9938 10
Pada OS X 10.11 (El Capitan) ini tampaknya telah diperbaiki:
$ jot -r 100000 5 10 | sort -n | uniq -c
16692 5
16550 6
16856 7
16579 8
16714 9
16609 10
dan...
$ jot -r 1000000 1 10 | sort -n | uniq -c
100430 1
99965 2
99982 3
99796 4
100444 5
99853 6
99835 7
100397 8
99588 9
99710 10
Memecahkan masalah distribusi
Untuk versi OS X yang lebih lama, untungnya ada beberapa solusi. Salah satunya adalah menggunakan konversi integer printf (3). Satu-satunya peringatan adalah bahwa interval maksimum sekarang menjadi max+1
. Dengan menggunakan format integer, kami mendapatkan distribusi yang adil di seluruh interval:
$ jot -w %i -r 100000 5 11 | sort -n | uniq -c
16756 5
16571 6
16744 7
16605 8
16683 9
16641 10
Solusi sempurna
Akhirnya, untuk mendapatkan gulungan dadu yang adil menggunakan solusi, kami memiliki:
$ min=5
$ max_plus1=11 # 10 + 1
$ jot -w %i -r 1 $min $max_plus1
Pekerjaan rumah ekstra
Lihat jot (1) untuk matematika berdarah dan detail format dan banyak lagi contoh.