Rumah >pembangunan bahagian belakang >tutorial php >Bagaimanakah Saya Boleh Menjana Nombor Rawak Berwajaran dalam PHP?

Bagaimanakah Saya Boleh Menjana Nombor Rawak Berwajaran dalam PHP?

Susan Sarandon
Susan Sarandonasal
2024-12-10 16:37:11544semak imbas

How Can I Generate Weighted Random Numbers in PHP?

Penjanaan Nombor Rawak Berwajaran dalam PHP

Soalan ini meneroka cabaran menjana nombor rawak sambil memperuntukkan kebarangkalian berbeza kepada julat tertentu. Dalam PHP, fungsi mt_rand() menyediakan cara untuk menjana integer rawak, tetapi ia tidak membenarkan hasil berwajaran.

Untuk mengatasi had ini, anda boleh menggunakan konsep kebarangkalian berwajaran. Pendekatan ini melibatkan mencipta tatasusunan bersekutu di mana kunci mewakili hasil yang diingini, dan nilai mewakili pemberat masing-masing. Jumlah berat semua hasil hendaklah dijumlahkan kepada berat maksimum yang mungkin.

Untuk menjana hasil rawak berdasarkan pemberat yang disediakan, anda perlu mengira nilai rawak antara 1 dan jumlah berat menggunakan mt_rand () fungsi. Kemudian, lelaran melalui tatasusunan berwajaran dan tolak berat setiap hasil daripada nilai rawak. Hasil pertama apabila nilai rawak menjadi negatif atau sifar dipilih sebagai hasil rawak berwajaran.

Fungsi PHP yang disediakan getRandomWeightedElement() melaksanakan pendekatan ini, membolehkan anda menentukan tatasusunan bersekutu hasil berwajaran dan mengembalikan yang sepadan kunci rawak. Ambil perhatian bahawa pemberat mestilah integer dan pemberat bukan integer mungkin memerlukan penyesuaian tersuai bagi fungsi ini.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menjana Nombor Rawak Berwajaran dalam PHP?. 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