Artikel ini menangani cabaran menjana nombor rawak berdasarkan taburan yang diberikan. Khususnya, tumpuan adalah pada pengedaran khusus seperti yang digariskan dalam input:
1 0.1 2 0.05 3 0.05 4 0.2 5 0.4 6 0.2
Adalah mungkin untuk membangunkan penyelesaian tersuai untuk menjana nombor rawak mengikut taburan yang diberikan. Ini melibatkan mencipta fungsi ketumpatan kumulatif dan memilih nilai yang sepadan berdasarkan nilai yang dijana secara rawak antara 0 dan 1. Walau bagaimanapun, banyak modul sedia ada boleh memudahkan tugas ini, menghapuskan keperluan untuk pengekodan manual.
Satu modul sedemikian ialah scipy.stats.rv_discrete, yang membolehkan anda menentukan kebarangkalian melalui parameter nilainya. Untuk menjana nombor rawak, anda boleh memanggil kaedah rvs() bagi objek pengedaran.
Pilihan lain ialah menggunakan numpy.random.choice() fungsi. Ia menerima senarai nilai dan memberikan kebarangkalian menggunakan parameter kata kunci p. Contohnya:
numpy.random.choice(numpy.arange(1, 7), p=[0.1, 0.05, 0.05, 0.2, 0.4, 0.2])
Untuk Python 3.6 dan ke atas, anda boleh memanfaatkan random.choices() daripada perpustakaan standard. Berikut ialah contoh:
import random random.choices(range(1, 7), weights=[0.1, 0.05, 0.05, 0.2, 0.4, 0.2])
Atas ialah kandungan terperinci Bagaimana untuk Menjana Nombor Rawak dengan Taburan Khusus dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!