確率は限りなく低く
1988年の統計のよれば、同年における10万人あたりの交通事故死亡者数、交通事故死傷者数は次の通りであった。
北海道 | 東京 | 大阪 | 福岡 | |
交通事故死亡者数 | 9.7 | 4.0 | 5.7 | 7.8 |
交通事故死傷者数 | 526.6 | 508.7 | 703.8 | 867.2 |
各都道府県において、人口10万人の都市を考えるとき、
(1),1年間の交通事故死亡者数が10人未満である確立を求めよ。
(2),1日の交通事故死傷者数が5人未満である確率を求めよ。
交通事故とかの分布は基本的にポアソン分布だったりするので、とりあえずポアソン分布で考えると
な式でもとまります。
つまり、求めたい確立をPとすると、(1)では、
っつーなるわけですよ。これをフツーに計算しても大変なので、コンピュータさんの力をかりることに。
ちなみに(2)も大体同じように解きます。
#include <stdio.h> #include <math.h> int fact(int i) { if (i == 0 || i == 1) return 1; return fact(i-1) * i; } int main(void) { double lam1[] = {9.7, 4.0, 5.7, 7.8}; double lam2[] = {526.6, 508.7, 703.8, 867.2}; char *city[] = {"北海道", "東京", "大阪", "福岡"}; int i, k; double p; printf("1年間の交通事故死亡者数が10人未満である確率\n"); for (i = 0;i < 4;i++) { p = 0.0; for (k = 0;k < 10;k++) p += exp(-lam1[i])*pow(lam1[i], k)/fact(k); printf("%-6s : %f\n", city[i], p); } printf("1日の交通事故死傷者数が5人未満である確率\n"); for (i = 0;i < 4;i++) { lam2[i] /= 365; p = 0.0; for (k = 0;k < 5;k++) p += exp(-lam2[i])*pow(lam2[i], k)/fact(k); printf("%-6s : %f\n", city[i], p); } return 0; } 出力: 1年間の交通事故死亡者数が10人未満である確率 北海道 : 0.495979 東京 : 0.991868 大阪 : 0.935183 福岡 : 0.741109 1日の交通事故死傷者数が5人未満である確率 北海道 : 0.983992 東京 : 0.985994 大阪 : 0.953591 福岡 : 0.907131
うん、巻末の解答と同じ結果が得られました。バンザイ。
でも、ポアソン分布だと気づかなければ解けません(普通は気づきますが)
ふぅ~、テストに出されたら困るタイプの問題だな。