cari
Rumahhujung hadapan webtutorial jsKuasai Penjanaan Nombor Rawak JavaScript: Panduan untuk Math.random() dan Seterusnya

Master JavaScript Random Number Generation: A Guide to Math.random() and Beyond
Nombor rawak digunakan dalam banyak senario pengaturcaraan, daripada pembangunan permainan dan simulasi kepada penjanaan UUID. Untuk itu, JavaScript menyediakan kaedah terbina dalam untuk berfungsi dengan nombor rawak. Dalam siaran ini, kami akan meneroka cara yang berbeza untuk menjana nombor rawak dalam JavaScript, daripada yang mudah kepada yang lanjutan. Jadi, mari mulakan!

Asas Menjana Nombor Rawak dalam JavaScript

Dalam JavaScript, kaedah utama untuk menjana nombor rawak ialah Math.random(). Kaedah ini mengembalikan nombor rawak titik terapung antara 0 (termasuk) dan 1 (eksklusif). Ini bermakna ia akan mengembalikan nilai dalam julat [0, 1), seperti 0.2345 atau 0.6789. Ia semudah itu! Mari semak sampel kod untuk ini:

let randomNum = Math.random();
console.log(randomNum); // Outputs a random number between 0 and 1

Ini akan memberikan output seperti ini, jika kami menjalankan program pada sistem kami:

Master JavaScript Random Number Generation: A Guide to Math.random() and Beyond

Walaupun, ini adalah titik permulaan yang bagus, tetapi jika kita memerlukan integer rawak atau nombor dalam julat tertentu, Math.random() sahaja tidak akan mencukupi untuk melakukan tugas itu.

Menjana Nombor Rawak dalam Julat

Untuk menjana nombor rawak dalam julat tertentu, katakan antara nilai min tertentu dan nilai maksimum tertentu yang lain, anda perlu melakukan sedikit matematik. Berikut ialah formula yang akan membantu:

function getRandomInRange(min, max) {
  return Math.random() * (max - min) + min;
}

console.log(getRandomInRange(10, 20)); // Outputs a number between 10 and 20

Ini akan memberikan output seperti:

Master JavaScript Random Number Generation: A Guide to Math.random() and Beyond

Math.random() menjana nombor antara 0 dan 1. Dan, dengan mendarabnya dengan (maks - min) dan kemudian menambah min, anda memastikan nombor itu berada dalam julat [min, maks).

Menjana Integer Rawak dalam Julat

Kadangkala, anda mungkin memerlukan nombor bulat dan bukannya nilai titik terapung. Untuk menjana integer rawak dalam julat tertentu, anda boleh menggunakan Math.floor() atau Math.ceil(). Jom semak caranya:

function getRandomIntInRange(min, max) {
  return Math.floor(Math.random() * (max - min + 1)) + min;
}

console.log(getRandomIntInRange(1, 100)); // Outputs a random integer between 1 and 100

Apabila kita menjalankan kod ini, kita akan mendapat output yang serupa seperti ini:

Master JavaScript Random Number Generation: A Guide to Math.random() and Beyond

Di sini, Math.floor() membundarkan ke bawah kepada integer terdekat, memastikan hasilnya ialah integer dalam julat [min, maks].

Menjana Boolean Rawak

Anda juga boleh menjana nilai boolean rawak (benar atau palsu) dalam JavaScript, yang boleh berguna dalam permainan atau dalam sebarang senario membuat keputusan:

function getRandomBoolean() {
  return Math.random() >= 0.5;
}

console.log(getRandomBoolean()); // Outputs true or false randomly

Kami akan mendapat output yang serupa seperti ini, apabila kami akan menjalankan kod:

Master JavaScript Random Number Generation: A Guide to Math.random() and Beyond

Menjana Nilai Rawak daripada Tatasusunan

Sekarang, jika kita ingin memilih elemen rawak daripada tatasusunan, kita boleh menggunakan Math.floor() dengan Math.random() dengan mudah. Mari lihat bagaimana kita boleh melakukannya:

let randomNum = Math.random();
console.log(randomNum); // Outputs a random number between 0 and 1

Sekarang, ini akan memberi kita sebarang unsur rawak daripada tatasusunan seperti ini, apabila kita menjalankan program:

Master JavaScript Random Number Generation: A Guide to Math.random() and Beyond

Mengocok Array

Untuk mengocok tatasusunan, iaitu menyusun semula elemennya secara rawak, anda boleh menggunakan algoritma kocok Fisher-Yates. Begini cara ia boleh dilaksanakan dengan bantuan Math.random():

function getRandomInRange(min, max) {
  return Math.random() * (max - min) + min;
}

console.log(getRandomInRange(10, 20)); // Outputs a number between 10 and 20

Sekarang, apabila kita akan menjalankan program, ia akan memberikan kita tatasusunan yang dikocok seperti ini:

Master JavaScript Random Number Generation: A Guide to Math.random() and Beyond

Penjanaan UUID rawak

Dalam banyak senario pembangunan, anda mungkin perlu menggunakan pengecam unik dan anda mungkin mempertimbangkan untuk menggunakan UUID rawak (Pengecam Unik Sejagat). Berikut ialah contoh asas penjana UUID menggunakan kaedah rawak kami:

function getRandomIntInRange(min, max) {
  return Math.floor(Math.random() * (max - min + 1)) + min;
}

console.log(getRandomIntInRange(1, 100)); // Outputs a random integer between 1 and 100

Jadi, apabila kita menjalankan program ini, ia akan menghasilkan UUID rawak seperti ini:

Master JavaScript Random Number Generation: A Guide to Math.random() and Beyond

Kesimpulan

Seperti yang anda lihat, JavaScript menyediakan banyak fleksibiliti untuk menjana nombor rawak. Dan dengan Math.random() sebagai asas, kita boleh mencipta nombor rawak, integer, boolean dan juga tatasusunan rawak. Dengan memahami teknik teras ini, kami berharap anda akan mempunyai asas yang kukuh untuk melaksanakan kerawak dalam projek JavaScript anda. Sama ada anda membina permainan, simulator loteri atau sebarang ciri yang memerlukan ketidakpastian, kaedah ini akan menampung keperluan anda!

Dan akhirnya, terima kasih kerana membaca blog! Saya harap anda mendapati ia bermaklumat dan berharga. Untuk mendapatkan maklumat lanjut, ikuti saya di Twitter (swapnoneel123) di mana saya berkongsi lebih banyak kandungan sedemikian melalui tweet dan rangkaian saya. Dan, sila pertimbangkan untuk berkongsinya dengan orang lain di Twitter dan tandai saya dalam siaran anda supaya saya dapat melihatnya juga. Anda juga boleh menyemak GitHub (Swpn0neel) saya untuk melihat projek saya. Saya doakan anda hari yang hebat di hadapan dan sehingga itu terus belajar dan terus meneroka!!

Master JavaScript Random Number Generation: A Guide to Math.random() and Beyond


Soalan Lazim

Adakah Math.random() benar-benar rawak?

Tidak, Math.random() tidak benar-benar rawak. Ia adalah penjana nombor rawak pseudo (PRNG), yang bermaksud ia menggunakan algoritma deterministik untuk menjana nombor. Walaupun nombor ini mungkin kelihatan rawak, ia dijana melalui proses yang boleh diramal.

Bolehkah saya menetapkan benih untuk Math.random() dalam JavaScript?

JavaScript's Math.random() tidak membenarkan anda menetapkan benih secara asli. Sesetengah bahasa pengaturcaraan lain membenarkan penjana nombor rawak berbiji untuk kebolehulangan, tetapi dalam JavaScript, anda memerlukan pustaka pihak ketiga (seperti seedrandom) jika anda mahukan ciri ini.

Mengapa Math.random() mengembalikan nombor antara 0 dan 1, bukannya julat yang lebih besar?

Pilihan reka bentuk di sebalik Math.random() mengembalikan nombor titik terapung antara 0 dan 1 adalah untuk memberikan fleksibiliti. Dengan mengembalikan nilai yang dinormalkan, pembangun boleh menskalakannya dengan mudah kepada mana-mana julat atau format, seperti integer atau nombor antara min dan maks tertentu.

Adakah terdapat sebarang kebimbangan prestasi dengan menggunakan Math.random() dengan kerap?

Dalam kebanyakan kes, Math.random() cekap dan cukup pantas untuk kegunaan biasa, seperti dalam permainan, animasi atau aplikasi harian yang lain. Walau bagaimanapun, jika anda perlu menjana berjuta-juta nombor rawak dalam masa nyata (contohnya, dalam simulasi berprestasi tinggi), anda mungkin ingin mempertimbangkan penyelesaian yang dioptimumkan seperti penjana rawak berasaskan WebAssembly atau algoritma tersuai.

Bolehkah Math.random() digunakan untuk tujuan kriptografi?

Tidak, Math.random() tidak cukup selamat untuk tujuan kriptografi. Ia boleh diramal dan tidak boleh digunakan dalam situasi yang memerlukan nombor rawak selamat, seperti menjana kata laluan atau kunci kriptografi. Untuk senario ini, anda harus menggunakan kaedah crypto.getRandomValues() yang disediakan oleh API Kriptografi Web, yang menawarkan rawak yang lebih selamat.

Atas ialah kandungan terperinci Kuasai Penjanaan Nombor Rawak JavaScript: Panduan untuk Math.random() dan Seterusnya. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan
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
Ganti aksara rentetan dalam javascriptGanti aksara rentetan dalam javascriptMar 11, 2025 am 12:07 AM

Penjelasan terperinci mengenai kaedah penggantian rentetan javascript dan Soalan Lazim Artikel ini akan meneroka dua cara untuk menggantikan watak rentetan dalam JavaScript: Kod JavaScript dalaman dan HTML dalaman untuk laman web. Ganti rentetan di dalam kod JavaScript Cara yang paling langsung ialah menggunakan kaedah pengganti (): str = str.replace ("cari", "ganti"); Kaedah ini hanya menggantikan perlawanan pertama. Untuk menggantikan semua perlawanan, gunakan ungkapan biasa dan tambahkan bendera global g: str = str.replace (/fi

periksa jQuery jika tarikh sahperiksa jQuery jika tarikh sahMar 01, 2025 am 08:51 AM

Fungsi JavaScript mudah digunakan untuk memeriksa sama ada tarikh sah. fungsi isvaliddate (s) { var bits = s.split ('/'); var d = tarikh baru (bit [2] '/' bits [1] '/' bits [0]); kembali !! (d && (d.getmonth () 1) == bit [1] && d.getdate () == nombor (bit [0])); } // ujian var

jQuery mendapatkan padding/margin elemenjQuery mendapatkan padding/margin elemenMar 01, 2025 am 08:53 AM

Artikel ini membincangkan cara menggunakan jQuery untuk mendapatkan dan menetapkan margin dalaman dan nilai margin elemen DOM, terutama lokasi tertentu margin luar dan margin dalaman elemen. Walaupun ada kemungkinan untuk menetapkan margin dalaman dan luar elemen menggunakan CSS, nilai yang tepat boleh menjadi rumit. // Sediakan $ ("div.header"). css ("margin", "10px"); $ ("div.header"). css ("padding", "10px"); Anda mungkin menganggap kod ini

10 Tab Accordion JQuery10 Tab Accordion JQueryMar 01, 2025 am 01:34 AM

Artikel ini meneroka sepuluh tab jQuery yang luar biasa dan akordion. Perbezaan utama antara tab dan akordion terletak pada bagaimana panel kandungan mereka dipaparkan dan tersembunyi. Mari kita menyelidiki sepuluh contoh ini. Artikel Berkaitan: 10 JQuery Tab Plugin

10 patut diperiksa plugin jQuery10 patut diperiksa plugin jQueryMar 01, 2025 am 01:29 AM

Temui sepuluh plugin jQuery yang luar biasa untuk meningkatkan dinamisme dan daya tarikan visual laman web anda! Koleksi ini menawarkan pelbagai fungsi, dari animasi imej ke galeri interaktif. Mari kita meneroka alat yang berkuasa ini: Posting Berkaitan: 1

HTTP Debugging dengan Node dan HTTP-ConsoleHTTP Debugging dengan Node dan HTTP-ConsoleMar 01, 2025 am 01:37 AM

HTTP-CONSOLE adalah modul nod yang memberi anda antara muka baris arahan untuk melaksanakan arahan HTTP. Ia bagus untuk menyahpepijat dan melihat apa yang sedang berlaku dengan permintaan HTTP anda, tanpa mengira sama ada mereka dibuat terhadap pelayan web, Serv Web

Tutorial Persediaan API Carian Google CustomTutorial Persediaan API Carian Google CustomMar 04, 2025 am 01:06 AM

Tutorial ini menunjukkan kepada anda bagaimana untuk mengintegrasikan API carian Google tersuai ke dalam blog atau laman web anda, menawarkan pengalaman carian yang lebih halus daripada fungsi carian tema WordPress standard. Ia menghairankan mudah! Anda akan dapat menyekat carian ke y

jQuery tambah bar scroll ke divjQuery tambah bar scroll ke divMar 01, 2025 am 01:30 AM

Coretan kod jQuery berikut boleh digunakan untuk menambah bar skrol apabila kandungan div melebihi kawasan elemen kontena. (Tiada demonstrasi, sila salin terus ke Firebug) // d = dokumen // w = tetingkap // $ = jQuery var contentArea = $ (ini), Wintop = contentArea.scrollTop (), docheight = $ (d) .height (), winheight = $ (w) .height (), Divheight = $ ('#c

See all articles

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Alat panas

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

SublimeText3 Linux versi baharu

SublimeText3 Linux versi baharu

SublimeText3 Linux versi terkini

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual