見出し画像

高校数学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)。

図1 スケッチ「ExpectedValue_Variance」の実行結果

なお、これらの値は分数で表すと順に

$$
\frac{13}{6}, \frac{35}{36}, \frac{\sqrt{35}}{6}
$$

となります。


本日は以上です。
明日は、確率変数の変換について考えていきます。

明日もよろしくお願いします。


読んだ感想などをお寄せください

本記事を読んだ感想や質問などを以下のお問い合せフォームからお寄せください。(お問合せフォームの本文に、本記事のタイトルを入れてください。)


MK’s papa


いいなと思ったら応援しよう!