Angka Acak dalam JavaScript
Angka acak memiliki segala macam kegunaan, dari kesenangan hingga praktis. Sebagian besar permainan melibatkan semacam keacakan dalam bentuk hal-hal seperti dadu atau kartu yang dikocok. Jika Anda ingin menampilkan kutipan acak ketika seseorang mengunjungi halaman Anda, Anda memerlukan sumber keacakan. Angka acak tidak semuanya menyenangkan dan permainan, angka acak digunakan dalam kriptografi, untuk pengambilan sampel acak, untuk pemodelan, dan untuk meletakkan segala sesuatu dalam urutan acak (seperti kandidat pada pemungutan suara.) Beberapa penggunaan ini tidak menggunakan angka secara langsung , tetapi Anda dapat mengonversi dari angka acak ke hal-hal acak dengan meletakkan hal-hal yang ingin Anda pilih dalam baris dan secara acak memilih satu baris. Dalam pemrograman, array berfungsi dengan baik untuk ini. Angka acak tidak selalu benar-benar acak. Jika Anda melempar satu set dadu yang adil, Anda akan mendapatkan angka acak, namun metode yang digunakan komputer untuk memilih angka acak sering kali angka pseudo-acak, artinya mereka tampak acak di permukaan tetapi sebenarnya bisa diprediksi atau seri berulang. Untuk beberapa hal, ini bukan perbedaan penting. Jika Anda menampilkan kutipan acak atau bercanda setiap kali seseorang memuat halaman web Anda, mungkin tidak masalah seseorang dapat memprediksi kapan kutipan spesifik akan muncul dan Anda dapat menggunakan angka pseudo-random secara aman (dalam hal ini, Anda mungkin bisa cukup tunjukkan kutipan Anda dalam urutan yang Anda tuliskan.) Jika Anda mencoba melakukan tes obat secara acak dari atlet Tour de France, sangat penting bahwa atlet tidak dapat memprediksi kapan atau apakah mereka akan diuji.

Objek JavaScript Matematika termasuk metode yang menyediakan angka pseudo-acak. Tidak seperti banyak bahasa pemrograman lain, JavaScript tidak memungkinkan Anda untuk menyemai penghasil angka dengan sumber keacakan Anda sendiri. Implementasi yang berbeda berbeda dalam seberapa dekat dengan angka acak yang disediakan, tetapi secara umum, mereka harus cukup baik untuk digunakan untuk kesenangan atau penggunaan artistik tetapi jika Anda memerlukan nomor acak untuk tujuan yang diatur secara hukum atau keamanan, Anda harus menemukan sumber yang lebih baik dari keserampangan. Itu math.random () Metode mengembalikan angka acak baik 0 atau antara 0 dan 1. Beberapa versi browser Opera memiliki standar non-standar math.random () metode yang akan sangat jarang kembali 1. Anda harus menangani hasil yang tidak terduga ini - saran termudah yang pernah saya lihat adalah menggunakan operator modulo dengan satu terhadap nilai yang dikembalikan oleh math.random (), ini akan mengembalikan nilai asli jika angka acak dalam rentang yang ditentukan dan 0 jika Anda mendapat 1. Juga, saya menemukan bahwa saya tidak memerlukan desimal acak kurang dari satu, melainkan bilangan bulat acak. Untuk mendapatkan bilangan bulat acak, Anda mengalikan nilainya dari math.random () dengan jumlah bilangan acak potensial yang Anda inginkan (X) dan menemukan bilangan bulat sebelumnya atau berikutnya. Objek matematika menyediakan metode lantai dan langit-langit yang dapat Anda gunakan untuk tujuan ini. Jika Anda menggunakan math.floor () metode, Anda akan mendapatkan nomor dari 0 hingga (X-1). Jika Anda menggunakan math.ceiling () metode Anda akan mendapatkan bilangan bulat dari 1 hingga X.

Untuk menemukan angka acak antara 0 dan (X-1), gunakan:

Math.floor ((Math.random ()% 1) * X)

Ini sangat berguna untuk menemukan elemen array acak.

Untuk menemukan angka acak antara 1 dan X, gunakan:

Math.ceiling ((Math.random ()% 1) * X)

Tugas seperti ini yang cukup umum tetapi membutuhkan sedikit pengetikan adalah kandidat yang baik untuk diubah menjadi fungsi.

Untuk diskusi tentang perbedaan antara angka yang benar-benar acak dan angka pseudo-acak yang kami gunakan di sini, sumber angka yang benar-benar acak, dan beberapa contoh hal-hal menyenangkan yang dapat Anda lakukan dengan angka acak atau pseudo-acak, periksa www.random. org

Petunjuk Video: Angka Random pada Javascript (Mungkin 2024).