出展:パーソナルソフトウェア技法 Watts S. Humphrey 著 ISBN4-320-02929-1

PSP課題 09A

前提条件

10章までと A6 節と課題 06A

要求

n 行 m 列の実数からなるファイルから指定した列を読込み list<double> に格納せよ。 このリストの正規分布している度合いを計算し出力せよ。 リストの個数は、10の倍数で、50以上とする。(チェックせよ) ベースは C01_05A とせよ。 ../Lib/gamma.h, ../Lib/gamma.cpp を用いてよい。

テスト

テスト1の3列目を読込み、出力が以下のようになること。
Q = 34.4  1-p = 7.60e-005

参考

正規分布の度合いの計算では、元データに対し、平均を引いて標準偏差で割って正規化し、さらにソートせよ。正規分布の面積が10(=s)等分になるような分割で、データが各々に入る個数を k_i とする(i=0..9)。
nn = n / s
Q = sum_i((nn-k_i)*(nn-k_i) / nn)
f(x,n) := 1 / 2^(n/2) / Γ(n/2) * integral_0_x(u^((n/2)-1) * exp(-u/2)) du
p = f(Q,s-1)
N(0,1) において
P(x>0.253) = 0.4
P(x>0.524) = 0.3
P(x>0.842) = 0.2
P(x>1.282) = 0.1