Rumah >hujung hadapan web >tutorial js >Bagaimanakah Saya Boleh Menjana Nombor Rawak Boleh Dihasilkan semula dalam JavaScript?
Membenihkan Penjana Nombor Rawak dalam JavaScript
Latar Belakang:
Penjana nombor rawak asli JavaScript , Math.random(), tidak mempunyai keupayaan untuk disemai, mengehadkan rawaknya. Ini menjadi masalah apabila jujukan nombor rawak yang boleh dihasilkan atau boleh diramal diperlukan.
Penyelesaian:
Untuk mengatasi had ini, adalah perlu untuk melaksanakan fungsi PRNG luaran yang menyokong pembenihan . Algoritma ini menerima benih sebagai input, memastikan penjanaan urutan rawak yang pasti dan berulang.
Pelaksanaan:
Pelbagai algoritma PRNG telah dibangunkan untuk JavaScript yang menawarkan tinggi- rawak kualiti. Berikut ialah beberapa pilihan popular:
sfc32 (Pebilang Cepat Mudah)
sfc32 ialah PRNG yang pantas dan boleh dipercayai dengan keadaan 128-bit. Ia melepasi suite ujian nombor rawak PractRand dan sangat disyorkan untuk kelajuan dan prestasinya dalam JavaScript.
splitmix32
splitmix32 ialah satu lagi PRNG berkualiti tinggi dengan sedikit berbeza pendekatan daripada sfc32. Ia juga menawarkan prestasi pantas dan sesuai untuk pelbagai aplikasi.
Penjanaan Benih:
Memulakan PRNG anda dengan betul adalah penting. Anda boleh menggunakan kaedah seperti fungsi cincang atau data tiruan yang dilapisi dengan Phi, Pi dan E untuk menjana benih entropi tinggi. Kemajuan penjana sebelum menggunakan outputnya juga disyorkan untuk mencampurkan keadaan awal dengan teliti.
Penggunaan:
Setelah anda mempunyai fungsi PRNG berbiji, anda boleh menjana boleh dihasilkan semula urutan nombor rawak yang menggunakannya. Nombor ini dihadkan kepada julat titik terapung antara 0 dan 1, serupa dengan Math.random().
Kesimpulan:
Dengan menggunakan fungsi PRNG luaran ini dan memastikan pembenihan yang betul, anda boleh mencapai rawak sebenar dalam JavaScript, menjadikan aplikasi dan simulasi anda lebih dipercayai dan tidak dapat diramalkan.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menjana Nombor Rawak Boleh Dihasilkan semula dalam JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!