Menjana Nombor Rawak dengan Pengagihan Tersuai
Dalam bidang pengaturcaraan, menjana nombor rawak ialah tugas asas. Untuk senario di mana pengedaran modul rawak standard menjadi pendek, seperti apabila mensimulasikan hari lahir, adalah perlu untuk menjana nombor yang mematuhi pengedaran yang ditentukan pengguna.
Modul Sedia Ada untuk Pengedaran Tersuai
Nasib baik, ekosistem perpustakaan Python yang kaya menyediakan penyelesaian kepada masalah ini. Satu modul sedemikian ialah scipy.stats.rv_discrete, yang membolehkan anda menentukan kebarangkalian untuk nilai yang berbeza dan menjana nombor rawak dengan sewajarnya. Parameter nilai dalam rv_discrete mengambil senarai kebarangkalian yang sepadan dengan nilai yang mungkin.
Contoh Penggunaan scipy.stats.rv_discrete
Untuk menggambarkan penggunaan rv_discrete, pertimbangkan berikut contoh:
import scipy.stats as stats # Define the probabilities probabilities = [0.1, 0.05, 0.05, 0.2, 0.4, 0.2] # Create the discrete distribution dist = stats.rv_discrete(values=(range(1, 7), probabilities)) # Generate random numbers random_numbers = dist.rvs(size=10)
Pilihan Tambahan
Di luar scipy.stats.rv_discrete, numpy.random.choice() Python menawarkan pendekatan alternatif. Dengan menyatakan kebarangkalian menggunakan parameter kata kunci p, ia membenarkan pengguna menjana nombor rawak berdasarkan pengedaran tersuai.
Python 3.6 dan Di Atas: random.choices()
Jika anda menggunakan Python 3.6 atau lebih baru, modul rawak termasuk fungsi random.choices() yang memudahkan proses menjana rawak nombor dengan pengedaran tersuai.
Kesimpulan
Sama ada anda memilih scipy.stats.rv_discrete, numpy.random.choice(), atau random.choices(), Python menyediakan set alat yang komprehensif untuk menjana nombor rawak yang mematuhi pengedaran yang ditentukan pengguna, membolehkan anda menangani cabaran statistik dengan berkesan.
Atas ialah kandungan terperinci Bagaimana untuk Menjana Nombor Rawak dengan Pengagihan Tersuai dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!