Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

โปรแกรม C++ สร้างตัวเลขสุ่มด้วยฟังก์ชันความหนาแน่นความน่าจะเป็น (Probability Distribution Function)


ฟังก์ชันความหนาแน่นความน่าจะเป็น (PDF)

ฟังก์ชันความหนาแน่นความน่าจะเป็น (Probability Density Function - pdf) คือฟังก์ชันที่อธิบายความน่าจะเป็นสัมพัทธ์สำหรับตัวแปรสุ่มนี้ในการรับค่าที่กำหนด เรียกอีกอย่างว่า ความหนาแน่นของตัวแปรสุ่มต่อเนื่อง

ความน่าจะเป็นที่ตัวแปรสุ่มจะอยู่ในช่วงค่าที่กำหนด กำหนดโดยการอินทิกรัลของความหนาแน่นของตัวแปรนั้นในช่วงนั้น ดังนั้น คือพื้นที่ภายใต้ฟังก์ชันความหนาแน่น แต่เหนือแกนแนวนอน และระหว่างค่าต่ำสุดและสูงสุดของช่วง การกระจายความน่าจะเป็น (Probability Distribution) ขึ้นอยู่กับฟังก์ชันความหนาแน่นความน่าจะเป็นนี้

อัลกอริทึม

เริ่มต้น
  ประกาศ n
  กำหนด pdf = 0
  For i = 0 ถึง n
    pdf = rand() mod 200
    If pdf > 360
      พิมพ์ 1
    Else if pdf < 0
      พิมพ์ 0
    Else
      พิมพ์ pdf * 0.1 / 360
  Done
สิ้นสุด

โค้ดตัวอย่าง

#include <iostream>
using namespace std;

int n = 6;

int main(int argc, char **argv) {
    int pdf = 0;
    for (int i = 0; i < n; i++) {
        pdf = rand() % 200;
        if (pdf > 360)
            cout << 1 << " ";
        else if (pdf < 0)
            cout << 0 << " ";
        else
            cout << pdf * 0.1 / 360 << " ";
    }
    cout << "...";
}

ผลลัพธ์ตัวอย่าง

0.0508333 0.0238889 0.0491667 0.0319444 0.0536111 0.0375 ...