C++ 程式,使用機率分佈函式生成隨機數
機率密度函式 (pdf) 是一種函式,用於描述該隨機變數取得給定值時的相對可能性。它也稱為連續隨機變數的密度。
隨機變數落在特定值範圍之內的機率由該變數在該範圍上密度的積分給出,因此,它由密度函式下方的區域給出,但在水平軸上方,並介於範圍的最小值和最大值之間。機率分佈基於此機率密度函式。
演算法
Begin Declare n Assign pdf=0 For i =0 to n , do pdf = rand() mod 200 If pdf greater than 360 Print 1 Else if pdf less than 0 Print 0 Else Print pdf * 0.1 / 360 Done Done end
示例程式碼
#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 ...
廣告