Rumah > hujung hadapan web > tutorial js > Menjana nombor rawak dalam javascript dengan math.random ()

Menjana nombor rawak dalam javascript dengan math.random ()

Joseph Gordon-Levitt
Lepaskan: 2025-02-11 08:31:12
asal
898 orang telah melayarinya

Artikel ini akan memperkenalkan cara menggunakan fungsi JavaScript Math.random() untuk menghasilkan nombor rawak dan membina fungsi yang boleh diguna semula untuk memohon kepada pelbagai senario, seperti memuatkan gambar rawak, pemilihan elemen rawak dari array, dan menghasilkan warna rawak. Surat, rentetan, frasa, dan kata laluan.

mata teras:

  • Fungsi terbina dalam Math.random() dalam JavaScript menghasilkan nombor titik terapung pseudo-random antara 0 (inklusif) dan 1 (tidak termasuk). Untuk menghasilkan nombor rawak lebih besar daripada 1, hanya kalikan hasilnya dengan faktor skala.
  • Untuk menghasilkan integer rawak, gunakan fungsi Math.floor untuk bulat. Untuk menjana bilangan bulat rawak dalam julat tertentu, tambahkan nilai minimum julat ke hasilnya.
  • Artikel ini menunjukkan cara menggunakan fungsi Math.random() untuk menghasilkan imej rawak, warna, huruf, rentetan, frasa, dan kata laluan. Teknik -teknik ini boleh menambah elemen rawak ke program JavaScript anda.
  • Fungsi -fungsi yang dibuat dalam artikel
  • (seperti randomInt, randomColor dan randomString) adalah blok bangunan untuk fungsi yang lebih kompleks, menunjukkan asas pengaturcaraan: menggunakan fungsi untuk mewujudkan fungsi yang lebih kompleks.

Rawak dalam JavaScript

Ia sangat berguna untuk menambah elemen rawak ke program anda. Anda mungkin mahu menambah beberapa gaya rawak untuk meningkatkan keseronokan laman web anda, menghasilkan frasa rawak, atau menambah unsur -unsur yang tidak disengajakan kepada permainan.

Malangnya, mewujudkan nilai rawak sebenar sebenarnya sangat sukar (kecuali jika anda dapat terdedah kepada bahan radioaktif ... atau monyet menggunakan papan kekunci). Untuk menyelesaikan masalah ini, bahasa pengaturcaraan menggunakan kaedah deterministik untuk menghasilkan nombor pseudo-rawak. Nombor -nombor ini kelihatan rawak, tetapi sebenarnya dihasilkan oleh fungsi yang menerima nilai benih berdasarkan peristiwa seperti masa atau kedudukan penunjuk tetikus.

JavaScript mempunyai fungsi

, yang merupakan kaedah dengan objek terbina dalam random. Standard ECMAScript tidak menentukan bagaimana fungsi ini harus menghasilkan nombor rawak, jadi ia ditinggalkan kepada pengeluar penyemak imbas untuk dilaksanakan. Pada masa penulisan, semua pelayar utama kini menggunakan algoritma Xorshift128 di latar belakang untuk menghasilkan nombor pseudo-rawak. Math

untuk menggunakannya, hanya masukkan

dan ia akan mengembalikan nombor titik terapung pseudo-random antara 0 (inklusif) dan 1 (tidak termasuk): Math.random()

const x = Math.random();
Salin selepas log masuk
Salin selepas log masuk
ini boleh dinyatakan oleh ketidaksamaan berikut:

<code>0 ≤ x < 1</code>
Salin selepas log masuk
Salin selepas log masuk
Tetapi bagaimana jika anda mahukan nombor rawak lebih besar daripada 1? Ia mudah: anda hanya perlu membiak dengan faktor skala untuk menguatkannya - contohnya, mengalikan hasil dengan 10 akan menghasilkan nilai antara 0 (inklusif) dan 10 (tidak termasuk):

const y = Math.random() * 10;
Salin selepas log masuk
Salin selepas log masuk
Jika kita melipatgandakan kedua -dua belah ketidaksamaan sebelumnya dengan 10, kita dapat melihat sebabnya:

<code>0 ≤ y < 10</code>
Salin selepas log masuk
Salin selepas log masuk
Tetapi hasilnya masih merupakan nombor titik terapung. Bagaimana jika kita mahukan integer rawak? Ia sangat mudah: kita hanya perlu menggunakan fungsi

untuk mengelilingi nilai pulangan ke integer di bawah. Kod berikut memberikan integer rawak antara 0 dan 9 (termasuk) kepada pembolehubah Z: Math.floor

const z = Math.floor(Math.random() * 10);
Salin selepas log masuk
Salin selepas log masuk
Perhatikan bahawa walaupun kita membiak dengan 10, nilai yang dikembalikan hanya 9.

kita boleh merumuskan kaedah ini untuk membuat fungsi yang akan kembali 0 ke (tetapi tidak termasuk) integer rawak antara nombor yang disediakan sebagai parameter:

const x = Math.random();
Salin selepas log masuk
Salin selepas log masuk

sekarang kita boleh menggunakan fungsi ini untuk mengembalikan nombor rawak antara 0 dan 9:

<code>0 ≤ x < 1</code>
Salin selepas log masuk
Salin selepas log masuk

jadi kita kini mempunyai cara untuk membuat bilangan bulat rawak. Tetapi bagaimana jika ia adalah antara dua nilai yang berbeza, bukannya selalu bermula dari sifar? Kami hanya perlu menggunakan kod di atas dan menambah nilai yang kami mahu julat bermula. Sebagai contoh, jika kita mahu menjana bilangan bulat rawak antara 6 dan 10 (termasuk), kita akan terlebih dahulu menjana bilangan bulat rawak antara 0 dan 4 menggunakan kod di atas, dan kemudian tambahkan 6 kepada hasilnya:

const y = Math.random() * 10;
Salin selepas log masuk
Salin selepas log masuk

Perhatikan bahawa untuk menghasilkan integer rawak antara 0 dan 4, kita sebenarnya perlu membiak dengan 5.

kita dapat merumuskan kaedah ini untuk membuat fungsi yang akan mengembalikan integer rawak antara dua nilai:

<code>0 ≤ y < 10</code>
Salin selepas log masuk
Salin selepas log masuk

Ini hanya bentuk kod umum yang kami tulis untuk mendapatkan nombor rawak antara 6 dan 10, tetapi ganti 6 dengan parameter min dan 10 dengan parameter max. Untuk menggunakannya, masukkan dua parameter untuk mewakili had bawah dan atas nombor rawak (termasuk). Oleh itu, untuk mensimulasikan dadu enam sisi bergulir, kita boleh menggunakan kod berikut untuk mengembalikan integer antara 1 dan 6:

const z = Math.floor(Math.random() * 10);
Salin selepas log masuk
Salin selepas log masuk

Generating Random Numbers in JavaScript with Math.random()

(gambar harus dimasukkan di sini, tetapi gambar tidak dapat dipaparkan kerana sistem fail tempatan tidak dapat diakses)

Selebihnya bahagiannya sama dengan teks asal. Harus diingat bahawa gambar -gambar perlu dipelihara dan disimpan dalam format asalnya.

Atas ialah kandungan terperinci Menjana nombor rawak dalam javascript dengan math.random (). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan