Bagaimana untuk Menjana Nombor Rawak dengan Taburan Tersuai dalam Python?

Susan Sarandon
Lepaskan: 2024-11-10 19:03:02
asal
467 orang telah melayarinya

How to Generate Random Numbers with a Custom Distribution in Python?

Menjana Nombor Rawak Menggunakan Taburan Tertentu

Anda memiliki fail yang mengandungi kebarangkalian untuk nilai yang berbeza:

1 0.1
2 0.05
3 0.05
4 0.2
5 0.4
6 0.2
Salin selepas log masuk

Matlamat anda adalah untuk menjana nombor rawak berdasarkan pengedaran ini. Anda mencari modul sedia ada yang mampu mengendalikan tugas ini, menyedari bahawa ia adalah isu lazim yang mungkin telah mendorong pembangunan fungsi atau modul khusus.

Penyelesaian

Ekosistem Python menyediakan beberapa pilihan untuk menjana nombor rawak dengan pengedaran tertentu:

  1. scipy.stats.rv_discrete:

    • Bekalkan anda kebarangkalian dalam parameter nilai.
    • Gunakan kaedah rvs() bagi objek taburan untuk menjana nombor rawak.
  2. numpy.random.choice () dengan parameter p:

    • Lepasi kebarangkalian sebagai parameter kata kunci p.
    • Contoh:

      numpy.random.choice(numpy.arange(1, 7), p=[0.1, 0.05, 0.05, 0.2, 0.4, 0.2])
      Salin selepas log masuk
  3. random.choices() (Python 3.6 ):

    • Fungsi daripada perpustakaan standard ini membenarkan untuk menentukan kebarangkalian.
    • Contoh:

      import random
      random.choices(population=list(range(1, 7)), weights=[0.1, 0.05, 0.05, 0.2, 0.4, 0.2])
      Salin selepas log masuk

Modul ini menyediakan cara yang cekap dan mudah untuk menjana nombor rawak dengan pengedaran tertentu, menghapuskan keperluan untuk melaksanakan algoritma tersuai .

Atas ialah kandungan terperinci Bagaimana untuk Menjana Nombor Rawak dengan Taburan Tersuai dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan