見出し画像

高校数学10分プログラミング(数学Ⅰ編 3.データの分析)8日目「データの分散、標準偏差を求める」

マガジンリスト > 数学Ⅰ編 3.データの分析 > 8日目 課題

おはようございます。

本日は、高校数学10分プログラミング(数学I編 3.データの分析)の8日目です。

本日の課題は、データの分散、標準偏差を求めるプログラムを作成することです。


偏差

データの各値$${x}$$と平均値$${\bar{x}}$$との差$${x-\bar{x}}$$

分散

偏差の2乗の平均値

$$
s^2 = \frac{1}{n} \{ (x_1-\bar{x})^2+(x_2-\bar{x})^2+ \cdots +(x_n-\bar{x})^2 \}
$$

なお、分散は

$$
s^2 = \overline{x^2} - \bar{x}^2
$$

と書くことができます。ここで、$${\overline{x^2}}$$は$${x^2}$$のデータの平均値を表します。

$$
\overline{x^2} = \frac{1}{n} (x_1^2+x_2^2+ \cdots + x_n^2)
$$

標準偏差

分散の正の平方根

$$
s = \sqrt{\frac{1}{n} \{ (x_1-\bar{x})^2+(x_2-\bar{x})^2+ \cdots +(x_n-\bar{x})^2 \}}
$$


課題

以下の「小テストの点数」のデータの平均値、分散、標準偏差を求め、その結果をコンソールに出力するプログラムを作成してください。

$$
3 \ 4 \ 9 \ 7 \ 6 \ 10 \ 5 \ 5 \ 7 \ 9 \ 6 \ 8 \ 1 \ 5 \ 7 \ 10 \ 8 \ 6 \ 3 \ 7
$$


ヒント

データの平均値の算出については、課題『高校数学10分プログラミング(数学Ⅰ編 3.データの分析)1日目「データの平均値を求める」』で作成した平均値を求める関数 calcmeanvalue を利用します。

// 平均値を計算する関数
float calcmeanvalue(
  int data_num, // データ数
  float[] data // データの配列
){
  float sum = 0.0; 
  for(int i=0; i<data_num; i++){
    sum += data[i];
  }
  return sum / data_num;
}

そして、平均値と同様に、分散と標準偏差の算出についても、それぞれ関数 calcvariance と calcstandarddeviation を準備して利用するようにします。

これらを踏まえて、データの平均値、分散、標準偏差を求めるプログラムはソースコード1のようになります。

// データの平均値、分散、標準偏差を計算する
void setup(){

  // データ
  int data_num = 20; // データ数
  float[] data = {3,4,9,7,6,10,5,5,7,9,6,8,1,5,7,10,8,6,3,7}; // データ

  // 平均値
  float mean = calcmeanvalue(data_num, data);
  println("平均値:", mean);

  // 分散
  float variance = calcvariance(data_num, data);
  println("分散:", variance);

  // 標準偏差
  float sd = calcstandarddeviation(data_num, data);
  println("標準偏差:", sd);
    
}

// 平均値を計算する関数
float calcmeanvalue(
  int data_num, // データ数
  float[] data // データの配列
){
  float sum = 0.0; 
  for(int i=0; i<data_num; i++){
    sum += data[i];
  }
  return sum / data_num;
}

// 分散を計算する関数
float calcvariance(
  int data_num, // データ数
  float[] data // データの配列
){

}

// 標準偏差を計算する関数
float calcstandarddeviation(
  int data_num, // データ数
  float[] data // データの配列
){

}

ソースコード1 データの平均値、分散、標準偏差を求めるプログラム(未完成)

ソースコード1の平均値を計算する関数 calcmeanvalue を参考にして、分散を計算する関数 calcvariance

// 平均値を計算する関数
float calcmeanvalue(
  int data_num, // データ数
  float[] data // データの配列
){

}

と標準偏差を計算する関数 calcstandarddeviation 

// 標準偏差を計算する関数
float calcstandarddeviation(
  int data_num, // データ数
  float[] data // データの配列
){

}

の中身を追記して、プログラムを完成させてください。


それでは、よろしくお願いします。

MK's papa

この記事が気に入ったらサポートをしてみませんか?