Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk menggunakan fungsi kebarangkalian dalam C++?

Bagaimana untuk menggunakan fungsi kebarangkalian dalam C++?

WBOY
WBOYasal
2023-11-18 16:08:361162semak imbas

Bagaimana untuk menggunakan fungsi kebarangkalian dalam C++?

Bagaimana untuk menggunakan fungsi kebarangkalian dalam C++?

Fungsi kebarangkalian memainkan peranan yang sangat penting dalam sains data dan statistik. Dalam bahasa pengaturcaraan C++, kita boleh menggunakan fungsi dalam perpustakaan standardnya untuk melaksanakan pelbagai pengiraan kebarangkalian. Artikel ini akan memperkenalkan cara menggunakan fungsi kebarangkalian dalam C++ untuk melaksanakan pengiraan kebarangkalian biasa.

Pustaka standard C++ menyediakan fail pengepala bernama "cmath", yang mengandungi banyak fungsi yang berkaitan dengan pengiraan matematik, termasuk fungsi kebarangkalian. Sebelum menggunakan fungsi kebarangkalian, kita perlu memahami beberapa konsep dan istilah dahulu.

  1. Fungsi ketumpatan kebarangkalian (PDF): Fungsi ketumpatan kebarangkalian menerangkan ketumpatan kebarangkalian pembolehubah rawak pada nilai tertentu. Dalam C++, kita boleh menggunakan jenis "double" untuk mewakili ketumpatan kebarangkalian.
  2. Fungsi taburan kumulatif (CDF): Fungsi taburan kumulatif menerangkan kebarangkalian bahawa pembolehubah rawak adalah kurang daripada atau sama dengan nilai tertentu. Dalam C++, kita juga boleh menggunakan jenis "double" untuk mewakili taburan kumulatif.
  3. Penjanaan nombor rawak: Kadangkala kita perlu menjana beberapa nombor rawak melalui fungsi kebarangkalian. Dalam C++, kita boleh menjana nombor pseudo-rawak menggunakan fungsi "rand".

Berikut ialah beberapa fungsi kebarangkalian biasa dan contoh penggunaan:

  1. Fungsi taburan normal:
    Taburan normal ialah taburan kebarangkalian sepunya, diwakili oleh kelas "taburan_normal".

    #include <iostream>
    #include <random>
    #include <cmath>
    
    int main() {
        std::random_device rd;
        std::mt19937 gen(rd());
        std::normal_distribution<double> dist(0.0, 1.0);
        double x = 2.0;
        double p = std::exp(-std::pow(x, 2) / 2) / std::sqrt(2 * M_PI);
        double cdf = std::erfc(-x / std::sqrt(2)) / 2;
        std::cout << "PDF: " << p << std::endl;
        std::cout << "CDF: " << cdf << std::endl;
        return 0;
    }

    Dalam contoh ini, kita mula-mula mentakrifkan taburan normal dengan min 0 dan sisihan piawai 1 melalui kelas "taburan_normal". Kemudian, kami mengira ketumpatan kebarangkalian dan taburan kumulatif pada x=2.0.

  2. Fungsi taburan binomial:
    Taburan binomial digunakan untuk menerangkan kebarangkalian kejayaan dalam bilangan tetap percubaan berulang. Diwakili menggunakan kelas "binomial_distribution".

    #include <iostream>
    #include <random>
    
    int main() {
        std::random_device rd;
        std::mt19937 gen(rd());
        std::binomial_distribution<int> dist(10, 0.5);
        int k = 5;
        double p = std::tgamma(11) / (std::tgamma(6) * std::tgamma(5)) * std::pow(0.5, 5) * std::pow(0.5, 5);
        double cdf = 0;
        for (int i = 0; i <= k; i++) {
            cdf += std::tgamma(11) / (std::tgamma(i + 1) * std::tgamma(11 - i)) * std::pow(0.5, i) * std::pow(0.5, 11 - i);
        }
        std::cout << "PDF: " << p << std::endl;
        std::cout << "CDF: " << cdf << std::endl;
        return 0;
    }

    Dalam contoh ini, kita mula-mula mentakrifkan taburan binomial yang diulang 10 kali dengan kebarangkalian kejayaan 0.5 melalui kelas "pengedaran_binomial". Kemudian, kami mengira ketumpatan kebarangkalian dan taburan kumulatif k = 5 kejayaan.

Melalui contoh di atas, kita dapat melihat cara menggunakan fungsi kebarangkalian dalam C++ untuk melakukan pengiraan kebarangkalian biasa. Dalam aplikasi praktikal, kadangkala kita juga perlu berurusan dengan jenis fungsi taburan kebarangkalian yang lain, seperti taburan Poisson, taburan eksponen, dsb. Pustaka standard C++ juga menyediakan kelas yang sepadan untuk mengendalikan pengedaran ini. Dalam amalan, kita boleh memilih fungsi pengedaran yang sesuai untuk pengiraan mengikut keperluan tertentu.

Ringkasnya, fungsi kebarangkalian dalam C++ menyediakan fungsi yang kaya melalui fungsi matematik perpustakaan standard, yang boleh membantu kami melakukan pelbagai pengiraan kebarangkalian. Dengan menggunakan fungsi ini, pengiraan ketumpatan kebarangkalian biasa, pengiraan taburan kumulatif, penjanaan nombor rawak, dsb. boleh dilaksanakan dengan mudah. Ini memberikan kami kemudahan besar dalam bidang pengkomputeran saintifik dan analisis data.

Atas ialah kandungan terperinci Bagaimana untuk menggunakan fungsi kebarangkalian dalam C++?. 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