高校数学10分プログラミング(数学B編 4.確率分布と統計的な推測)2日目「期待値や分散、標準偏差を考える」解説
マガジンリスト > 数学B編 4.確率分布と統計的な推測 > 2日目 解説
本日の課題、おつかれさまでした。
課題の期待値、分散、標準偏差を求めるプログラムを作成することができたでしょうか。
解答例
今回の課題の期待値、分散、標準偏差を求めるプログラムの例を示します。
// 期待値、分散、標準偏差の計算
void setup(){
// 確率変数の値
int[] x = {1,2,3,4};
// 確率分布P
float[] p = {1.0/3.0, 1.0/4.0, 1.0/3.0, 1.0/12.0};
// 確率変数の取りうる値の数
int n = x.length;
// 期待値の計算
float m = 0;
for(int i=0;i<n;i++){
m = m + x[i]*p[i];
}
// 分散の計算
float v = 0;
for(int i=0;i<n;i++){
v = v + (x[i]-m)*(x[i]-m)*p[i];
}
// 標準偏差の計算
float sigma = sqrt(v);
// 期待値、分散、標準偏差の値をコンソールに出力
println("期待値 :", m);
println("分散 :", v);
println("標準偏差:", sigma);
}
ソースコード2 期待値、分散、標準偏差を求めるプログラム(完成版)
ソースコード2を、Processing の開発環境ウィンドウを開いて(スケッチ名を「ExpectedValue_Variance」とします)、テキストエディタ部分に書いて実行すると、コンソールに
期待値 : 2.1666667
分散 : 0.9722222
標準偏差: 0.9860133
と出力されます(図1)。
なお、これらの値は分数で表すと順に
$$
\frac{13}{6}, \frac{35}{36}, \frac{\sqrt{35}}{6}
$$
となります。
本日は以上です。
明日は、確率変数の変換について考えていきます。
明日もよろしくお願いします。
読んだ感想などをお寄せください
本記事を読んだ感想や質問などを以下のお問い合せフォームからお寄せください。(お問合せフォームの本文に、本記事のタイトルを入れてください。)
MK’s papa