


Kuasai Penjanaan Nombor Rawak JavaScript: Panduan untuk Math.random() dan Seterusnya
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:
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:
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:
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:
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:
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:
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:
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!!
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!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas











Python lebih sesuai untuk pemula, dengan lengkung pembelajaran yang lancar dan sintaks ringkas; JavaScript sesuai untuk pembangunan front-end, dengan lengkung pembelajaran yang curam dan sintaks yang fleksibel. 1. Sintaks Python adalah intuitif dan sesuai untuk sains data dan pembangunan back-end. 2. JavaScript adalah fleksibel dan digunakan secara meluas dalam pengaturcaraan depan dan pelayan.

Peralihan dari C/C ke JavaScript memerlukan menyesuaikan diri dengan menaip dinamik, pengumpulan sampah dan pengaturcaraan asynchronous. 1) C/C adalah bahasa yang ditaip secara statik yang memerlukan pengurusan memori manual, manakala JavaScript ditaip secara dinamik dan pengumpulan sampah diproses secara automatik. 2) C/C perlu dikumpulkan ke dalam kod mesin, manakala JavaScript adalah bahasa yang ditafsirkan. 3) JavaScript memperkenalkan konsep seperti penutupan, rantaian prototaip dan janji, yang meningkatkan keupayaan pengaturcaraan fleksibiliti dan asynchronous.

Penggunaan utama JavaScript dalam pembangunan web termasuk interaksi klien, pengesahan bentuk dan komunikasi tak segerak. 1) kemas kini kandungan dinamik dan interaksi pengguna melalui operasi DOM; 2) pengesahan pelanggan dijalankan sebelum pengguna mengemukakan data untuk meningkatkan pengalaman pengguna; 3) Komunikasi yang tidak bersesuaian dengan pelayan dicapai melalui teknologi Ajax.

Aplikasi JavaScript di dunia nyata termasuk pembangunan depan dan back-end. 1) Memaparkan aplikasi front-end dengan membina aplikasi senarai TODO, yang melibatkan operasi DOM dan pemprosesan acara. 2) Membina Restfulapi melalui Node.js dan menyatakan untuk menunjukkan aplikasi back-end.

Memahami bagaimana enjin JavaScript berfungsi secara dalaman adalah penting kepada pemaju kerana ia membantu menulis kod yang lebih cekap dan memahami kesesakan prestasi dan strategi pengoptimuman. 1) aliran kerja enjin termasuk tiga peringkat: parsing, penyusun dan pelaksanaan; 2) Semasa proses pelaksanaan, enjin akan melakukan pengoptimuman dinamik, seperti cache dalam talian dan kelas tersembunyi; 3) Amalan terbaik termasuk mengelakkan pembolehubah global, mengoptimumkan gelung, menggunakan const dan membiarkan, dan mengelakkan penggunaan penutupan yang berlebihan.

Python dan JavaScript mempunyai kelebihan dan kekurangan mereka sendiri dari segi komuniti, perpustakaan dan sumber. 1) Komuniti Python mesra dan sesuai untuk pemula, tetapi sumber pembangunan depan tidak kaya dengan JavaScript. 2) Python berkuasa dalam bidang sains data dan perpustakaan pembelajaran mesin, sementara JavaScript lebih baik dalam perpustakaan pembangunan dan kerangka pembangunan depan. 3) Kedua -duanya mempunyai sumber pembelajaran yang kaya, tetapi Python sesuai untuk memulakan dengan dokumen rasmi, sementara JavaScript lebih baik dengan MDNWebDocs. Pilihan harus berdasarkan keperluan projek dan kepentingan peribadi.

Kedua -dua pilihan Python dan JavaScript dalam persekitaran pembangunan adalah penting. 1) Persekitaran pembangunan Python termasuk Pycharm, Jupyternotebook dan Anaconda, yang sesuai untuk sains data dan prototaip cepat. 2) Persekitaran pembangunan JavaScript termasuk node.js, vscode dan webpack, yang sesuai untuk pembangunan front-end dan back-end. Memilih alat yang betul mengikut keperluan projek dapat meningkatkan kecekapan pembangunan dan kadar kejayaan projek.

C dan C memainkan peranan penting dalam enjin JavaScript, terutamanya digunakan untuk melaksanakan jurubahasa dan penyusun JIT. 1) C digunakan untuk menghuraikan kod sumber JavaScript dan menghasilkan pokok sintaks abstrak. 2) C bertanggungjawab untuk menjana dan melaksanakan bytecode. 3) C melaksanakan pengkompil JIT, mengoptimumkan dan menyusun kod hot-spot semasa runtime, dan dengan ketara meningkatkan kecekapan pelaksanaan JavaScript.
