Lewati ke konten utama
CalcMax

Generator Angka Acak

Rentang: 1 – 200

Rentang: 0 – 4.294.967.295

Hasil

63, 1, 53, 99, 97

Angka yang diambil

Nilai yang mungkin
100
Peluang ada angka yang berulang
9,65%

Generator angka acak mengubah sebuah titik awal menjadi daftar bilangan bulat di dalam rentang yang Anda tetapkan. Halaman ini menerima rentang, berapa banyak angka yang Anda inginkan, dan benih acak tempat memulainya, lalu mengembalikan tepat sebanyak itu bilangan bulat — angka yang sama setiap kali Anda memakai benih yang sama, dan itulah yang membuat daftarnya bisa Anda serahkan kepada orang lain dan mereka reproduksi. Matikan duplikatnya dan hasilnya menjadi pemilihan alih-alih deretan, sehingga tidak ada nilai yang bisa muncul dua kali; biarkan menyala dan angkanya menjadi penarikan yang saling bebas, yaitu model yang jujur untuk dadu, mesin undian, atau daftar putar yang boleh berulang. Panelnya juga melaporkan berapa banyak nilai berbeda yang dikandung rentangnya dan seberapa besar peluang terjadinya pengulangan seandainya duplikat diizinkan.

Rumus

berikutnya = (keadaan + 0x6D2B79F5) diaduk dengan perkalian-geser → nilai = minimum + ⌊berikutnya × (maksimum − minimum + 1)⌋

benih acak
Keadaan awal generatornya, bilangan bulat apa pun dari 0 sampai 4.294.967.295. Nilainya bukan sumber keacakan dengan sendirinya — ia adalah titik awal deretnya, dan justru itulah sebabnya benih yang sama selalu memberi daftar yang sama
keadaan
Keadaan yang berjalan, diperbarui sekali untuk setiap angka. Pembaruannya mengaduk keadaan itu dengan sebuah konstanta tetap dan beberapa langkah perkalian-geser; pengadukan itulah yang membuat nilai berurutannya tampak tidak berhubungan, dan langkah itulah yang pertama kali rusak bila disederhanakan
minimum, maksimum
Kedua ujung rentangnya, keduanya termasuk. Lebar rentangnya itulah yang dipakai menskalakan pecahannya, sehingga setiap bilangan bulat di dalam rentangnya berpeluang sama
⌊ ⌋
Pembulatan ke bawah. Generatornya menghasilkan pecahan pada [0, 1) dan fungsi lantai mengubahnya menjadi salah satu bilangan bulat di dalam rentangnya
banyaknya angka
Berapa banyak angka yang dihasilkan, sampai 200. Bila duplikatnya dimatikan, jumlahnya tidak boleh melebihi lebar rentangnya, karena sebuah pemilihan tidak bisa lebih panjang daripada kumpulan asalnya

Pakai ketika Anda membutuhkan daftar dan bukan satu angka: sampel untuk diperiksa dengan tangan, sekumpulan kasus uji yang harus sama pada setiap penjalanan, pengundian yang ingin Anda ulang di depan penonton, atau data sementara. Kemampuan menetapkan benihnya itulah alasan memilih halaman ini daripada fungsi acak bawaan bahasa pemrograman Anda — benih mengubah hasil sekali pakai menjadi sesuatu yang bisa dibagikan, diperiksa ulang, dan diperdebatkan. Pakailah dengan duplikat dimatikan ketika item yang sama tidak boleh muncul dua kali, dan itulah bentuk pengundian hadiah, sampel acak dari sebuah daftar, dan urutan yang diacak. Ada dua hal yang bukan keperluannya: halaman ini bukan sumber angka yang tak terduga, jadi tidak ada apa pun yang harus tak tertebak yang pantas ditaruh di sini; dan halaman ini bukan pengganti sampel acak statistik dari populasi nyata, karena ia tidak tahu apa-apa tentang populasinya, hanya tentang rentangnya.

Contoh hitungan

  1. Lima angka dari 1 sampai 100, dan lima angka yang sama lagi

    1. Rentang 1 sampai 100 memuat 100 nilai berbeda, jadi setiap penarikannya adalah satu dari 100
    2. Benih 1 menetapkan keadaan awalnya; masing-masing dari kelima angkanya memperbarui keadaan itu sekali
    3. Membulatkan setiap pecahannya ke bawah ke dalam rentang 1 sampai 100 memberi 63, 1, 53, 99, dan 97 dalam urutan itu

    Kelima angka itu bukan kebetulan dan bukan tabel yang disimpan: itulah yang dihasilkan benih 1, dan mengetikkan angka 1 lagi ke kolom benih acaknya mereproduksinya persis. Perhatikan bahwa 9,65% adalah pernyataan tentang rentang dan jumlahnya, bukan tentang pengundian ini secara khusus — dengan lima penarikan dari seratus nilai, peluang dua di antaranya sama sedikit di bawah satu dari sepuluh, terlepas dari apakah dua angka pada daftar ini memang sama. Mengubah benihnya menjadi 7 memberi daftar yang sama sekali berbeda tanpa menggeser persentase itu, dan itulah cara paling bersih untuk melihat bagian mana dari panelnya yang acak dan bagian mana yang aritmetika.

  2. Enam angka dari 1 sampai 49 dengan pengulangan dilarang

    1. Kumpulannya berisi 49 nilai dan enam di antaranya ditarik tanpa pengembalian
    2. Setiap angka baru ditarik ulang sampai ia termasuk nilai yang belum pernah diberikan kumpulannya, dan itulah sebabnya sebuah nilai tidak pernah bisa muncul dua kali
    3. Membaca daftarnya dalam urutan dihasilkannya memberi 23, 16, 33, 31, 8, dan 11

    Mematikan duplikatnya tidak mengubah angka 27,26%, dan itulah alasan angka itu dilaporkan di sebelah contoh ini: nilainya adalah peluang enam penarikan dari 49 akan bertabrakan seandainya pengulangan diizinkan, dan besarnya sama entah Anda melarangnya atau tidak. Itu pula yang membuat penarikan tanpa pengulangan menjadi mahal pada jumlah yang besar — pada 49 nilai dengan 6 penarikan, lebih dari seperempat penarikan tanpa batas akan mengulang sesuatu, dan pada 23 penarikan dari 365 nilainya melewati separuh. Angkanya tetap dalam urutan penarikannya dan tidak diurutkan, sehingga benih dan setelan yang sama selalu mereproduksi daftar yang sama.

  3. Rentang yang hanya memuat satu nilai

    1. Rentangnya memuat tepat satu nilai, jadi setiap penarikannya adalah nilai itu
    2. Peluang pengulangannya adalah peluang empat penarikan bertabrakan, dan dengan kumpulan berisi satu penarikan itu pasti bertabrakan
    3. Hasilnya 7, 7, 7, dan 7

    Inilah batas ketika generator angka acak berhenti acak dan menjadi konstanta, dan itu layak diingat karena hanya di kasus ini keluarannya bisa dipastikan sepenuhnya sebelum Anda menekan apa pun. Contoh ini juga menandai batas mode tanpa duplikat: dengan rentang yang sama, meminta dua angka tanpa duplikat adalah permintaan yang mustahil dan bukan daftar yang pendek, dan halaman ini mengatakannya alih-alih diam-diam mengembalikan satu angka.

Batasan

Angka-angka ini tidak layak untuk apa pun yang harus tak tertebak. Generatornya adalah deret aritmetika berbenih yang kecil dan cepat, sejenis yang tertanam pada perangkat lunak biasa: dengan benihnya, siapa pun bisa mereproduksi seluruh daftarnya, dan dengan beberapa nilai darinya, sisanya bisa dihitung. Itu mencoretnya untuk sandi, kunci, token, kode sekali pakai, undian yang mempertaruhkan uang, dan segala hal lain di mana peserta tidak boleh bisa meramalkan atau merekonstruksi pengundiannya. Untuk keperluan itu, sumber acak kriptografis adalah satu-satunya jawaban yang benar. Peluang pengulangannya juga bukan klaim tentang daftar yang sedang Anda lihat: nilainya adalah peluang bahwa penarikan sebesar itu dari kumpulan sebesar itu memuat sedikitnya satu tabrakan, dihitung seolah penarikannya bebas dan seragam, dan dilaporkan entah duplikatnya diizinkan atau tidak. Makna praktisnya justru yang paling sering menjebak orang — sebuah tabrakan hanya membutuhkan sekitar akar dari ukuran kumpulannya untuk menjadi besar kemungkinannya, sehingga 23 penarikan dari 365 tanggal sudah melewati peluang seimbang. Dan jumlahnya dibatasi 200 per penjalanan, dengan pengulangan menjadi mustahil begitu jumlahnya melebihi ukuran kumpulannya.

Pertanyaan yang sering diajukan

Apakah angka-angka ini aman dipakai untuk undian, sandi, atau token keamanan?
Tidak. Generator di halaman ini adalah deret aritmetika berbenih yang kecil, sejenis yang dipakai perangkat lunak biasa, bukan yang bersifat kriptografis: dari benihnya seluruh daftarnya bisa direproduksi, dan dari beberapa nilainya sisanya bisa dihitung. Apa pun yang mengharuskan peserta tidak bisa meramalkan atau merekonstruksi hasilnya — undian yang mempertaruhkan uang, sandi, kunci, token, kode sekali pakai — membutuhkan sumber acak kriptografis. Untuk pengundian, sampel, permainan, dan data uji, tempat bisa direproduksi justru menjadi kelebihan dan bukan kebocoran, halaman ini alat yang tepat.
Untuk apa benih acaknya, dan mengapa angkanya selalu sama?
Benih acaknya adalah keadaan tempat deretnya dimulai, sehingga benih yang sama selalu menghasilkan daftar yang sama. Itu memang disengaja: sifat itu membuat hasilnya bisa direproduksi, dan itulah yang Anda butuhkan ketika harus menyerahkan sampel kepada orang lain, menjalankan ulang pengundian di depan penonton, atau menjaga sebuah kasus uji agar tidak bergeser. Ubah benihnya dan Anda mendapat daftar yang berbeda dari setelan yang sama. Bila Anda ingin angkanya berbeda setiap kali, ubah benihnya di antara penjalanan — nilai yang Anda ketik tercatat bersama hasilnya, sehingga daftar yang Anda sukai selalu bisa dipulihkan.
Mengapa duplikat masih bisa muncul padahal diizinkan?
Karena setiap penarikannya bebas. Dengan duplikat diizinkan, setiap posisi memilih salah satu nilai di dalam rentangnya tanpa memedulikan apa yang dipilih posisi lain, dan itulah model yang jujur untuk lemparan dadu atau mesin undian yang mengembalikan bolanya. Peluang pengulangan pada panelnya tepat merupakan peluang bahwa sedikitnya satu pasangan bertabrakan — sekitar 9,65% untuk lima penarikan dari seratus nilai, dan lebih dari 50% begitu Anda menarik 23 nilai dari 365. Matikan duplikatnya ketika nilai yang sama tidak boleh muncul dua kali, dan itulah bentuk undian hadiah, sampel dari sebuah daftar, atau urutan yang diacak.
Apakah peluang pengulangannya mengecil kalau duplikat saya larang?
Tidak, dan panelnya sengaja tetap menampilkan angka yang sama. Angka itu menjawab pertanyaan yang sebenarnya Anda ajukan ketika membalik sakelarnya: seberapa besar peluang tabrakan seandainya pengulangan diizinkan. Untuk enam angka dari 1 sampai 49 nilainya 27,26%, jadi melarang duplikat menghilangkan risiko yang nyata dan bukan risiko teoretis. Angka itu juga menjelaskan mengapa penarikan tanpa pengulangan melambat dan akhirnya menjadi mustahil pada jumlah yang besar — begitu jumlahnya melebihi banyaknya nilai di dalam rentangnya, tidak ada jawaban yang sah sama sekali, dan halaman ini melaporkannya alih-alih mengembalikan daftar yang lebih pendek.
Berapa banyak angka yang bisa dihasilkan sekaligus, dan pada rentang berapa?
Sampai 200 angka per penjalanan, dan kedua ujung rentangnya harus bilangan bulat dengan minimumnya tidak lebih besar daripada maksimumnya. Nilainya sendiri boleh negatif, jadi rentang dari −50 sampai 50 tidak masalah. Ujung rentang yang bukan bilangan bulat ditolak dan bukan dibulatkan: dengan duplikat dilarang, menari dari rentang yang memuat pecahan akan membuat aturan tanpa pengulangan menjadi syarat yang kosong, dan daftar yang terlihat masuk akal sambil diam-diam mengabaikan setelannya sendiri lebih buruk daripada pesan galat.
Apakah angkanya diurutkan?
Tidak — angkanya dicetak dalam urutan penarikannya, dan urutan itu bagian dari hasilnya. Mengurutkannya akan membuang informasi yang justru seharusnya direproduksi oleh benih yang sama, dan urutan itu penting untuk apa pun yang posisinya bermakna, seperti menetapkan urutan yang diacak atau membagikan kartu. Bila Anda menginginkan pemilihan yang terurut, urutkan sendiri daftarnya setelah disalin; pengundiannya sendiri tetap setia pada deret yang dihasilkan benihnya.

Referensi

Kalkulator terkait