1. 程式人生 > >概率論基礎-泊松分佈計算近似概率

概率論基礎-泊松分佈計算近似概率

為保證裝置的正常執行,必須配備一定數量的裝置維修人員,現有同類裝置300臺,且各臺裝置工作相互獨立,任一時刻發生故障的概率都是0.01,假設一臺裝置的故障由一人進行修理,問至少應配備多少名修理人員,才能保證裝置發生故障後能得到及時修理的概率不小於0.99?


當N大,p小時,可以用此公式,是近似的二項分佈計算,相對的計算量會少一些。

當然,對於此題,精確計算應該是用二項分佈,但是計算C(n,k)過大,會溢位。

下面的程式得出至少需要8名人員。

#include <iostream>
#include <math.h>
using namespace std;

int m[101] = {1,1};

int main() {
	int N = 300;
	double p = 0.01;
	double r = N * p;

	//計算階乘, 預測結果不會太大,計算到50即可
	for(int i=2; i<=50; i++)
		m[i] = m[i-1] * i;

	double ke = exp(-r);

	double ans = 0;
	//使用泊松分佈公式計算
	for(int i=0; i<300; i++){
		ans += ke * pow(r, i) / m[i];
		if(ans >= 0.99){
			cout << i<< endl;
			break;
		}
	}


	return 0;
}