高校数学10分プログラミング(数学B編 4.確率分布と統計的な推測)7日目「確率変数の和と積を考える2」解説
マガジンリスト > 数学B編 4.確率分布と統計的な推測 > 7日目 解説
本日の課題、おつかれさまでした。
課題の確率変数の独立性を用いて確率変数$${X}$$と$${Y}$$の和に対する期待値、分散及び標準偏差を求めるプログラムを作成することができたでしょうか。
解答例
今回の課題の、確率変数の独立性を用いて確率変数の和の期待値と標準偏差を求めるプログラムの例を示します。
// 10円硬貨1枚と100円硬貨1枚を同時に投げるとき、
// 表の出た硬貨の金額の和の期待値と標準偏差を求める。
// 確率変数の独立性を利用
void setup(){
int a = 10; // 10円
int b = 100; // 100円
// 10円硬貨の裏表が出る確率分布
float[] p_ten = {1.0/2.0,1.0/2.0};
// 100円硬貨の裏表が出る確率分布
float[] p_hundred = {1.0/2.0,1.0/2.0};
// 独立な確率変数による期待値の計算
float m_ten = 0.0; // 10円玉の期待値
for(int x=0; x<=1; x++){ // 10円硬貨の裏(0)、表(1)
m_ten = m_ten + x*p_ten[x];
}
float m_hundred = 0.0; // 100円玉の期待値
for(int y=0; y<=1; y++){ // 100円硬貨の裏(0)、表(1)
m_hundred = m_hundred + y*p_hundred[y];
}
float m = a * m_ten + b * m_hundred ;
// 独立な確率変数による分散の計算
float v_ten = 0.0; // 10円玉の分散
for(int x=0; x<=1; x++){ // 10円硬貨の裏(0)、表(1)
v_ten = v_ten + (x-m_ten)*(x-m_ten)*p_ten[x];
}
float v_hundred = 0.0; // 100円玉の分散
for(int y=0; y<=1; y++){ // 100円硬貨の裏(0)、表(1)
v_hundred = v_hundred + (y-m_hundred)*(y-m_hundred)*p_hundred[y];
}
float v = a * a * v_ten + b * b * v_hundred;
// 標準偏差の計算
float sigma = sqrt(v);
// 期待値、分散、標準偏差の値をコンソールに出力
println("期待値 :", m);
println("分散 :", v);
println("標準偏差:", sigma);
}
ソースコード2 確率変数の独立性を用いて確率変数の和の期待値と標準偏差を求めるプログラム(完成版)
ソースコード2を、Processing の開発環境ウィンドウを開いて(スケッチ名を「SumofProbabilityVariables2」とします)、テキストエディタ部分に書いて実行すると、コンソールに
期待値 : 55.0
分散 : 2525.0
標準偏差: 50.24938
と出力されます(図1)。
この結果は、前回(6日目)行った同時分布を用いた結果と一致しています。
本日は以上です。
明日は、二項分布について考えていきます。
明日もよろしくお願いします。
読んだ感想などをお寄せください
本記事を読んだ感想や質問などを以下のお問い合せフォームからお寄せください。(お問合せフォームの本文に、本記事のタイトルを入れてください。)
MK’s papa