ものごとは白黒はっきりさせたいものです。なんだかぼんやりしたものを見ると、
伝統的な講道館柔道の試合は、
数学といえば、
![図51.1 人生の勝負は負けて勝つことがある 図51.1 人生の勝負は負けて勝つことがある](/assets/images/book/serial/2007/java-calculation/thumb/TH800_0051-01.png)
確率変数
事象は式50.
コインの表裏のように、
![](/assets/images/book/serial/2007/java-calculation/0050-03.jpg)
確率密度関数
確率変数と確率の値の関係を、
![](/assets/images/book/serial/2007/java-calculation/0050-04.jpg)
各要素の現れる確率の合計は1となります。
![](/assets/images/book/serial/2007/java-calculation/0050-05.jpg)
このような関数を確率密度関数
![図51.2 確率分布の例 図51.2 確率分布の例](/assets/images/book/serial/2007/java-calculation/thumb/TH800_0051-02.jpg)
グラフの横軸に確率変数、
演習では、
問題 n個のさいころを同時に投げて、出た目の最大値をXとします。このとき、確率変数Xの確率分布を、数学的に、そして統計的に答えてください。
これは大昔にある大学の入試問題として出題されたものです。数学的確率は、
解説
問題:n個のさいころを同時に投げて、
数学的に確率分布を求める
先ずは数学的に確率分布を計算してみましょう。目の最大値が1である確率とは、
![](/assets/images/book/serial/2007/java-calculation/0050-06.jpg)
最大値が2である確率とは、
![](/assets/images/book/serial/2007/java-calculation/0050-07.jpg)
最大値が3である場合とは、
![](/assets/images/book/serial/2007/java-calculation/0050-08.jpg)
以下同様に考えて、
![](/assets/images/book/serial/2007/java-calculation/0050-09.jpg)
以上が正しい式ならば、
![](/assets/images/book/serial/2007/java-calculation/0050-10.jpg)
確かに1になっています。間違っていないようですね。
この確率密度関数をグラフにする、=
ですから横一直線のグラフになります。nが増加するにつれて急速に変形し、
統計的に確率分布を求める
実際に数学的に求めた通りになるのか、
/*
問題 n 個のさいころを同時に投げて、出た目の最大値をX とします。このとき、確率変数X の確率分布を、数学的に、そして統計的に答えてください。
filename : Sample_NDiceMaxVal.java
*/
import java.util.Arrays;
class Sample_NDiceMaxVal {
public static void main(String[] args) {
int p = 6; //さいころの面数
Dice d6 = new Dice(p);
int n = 3; //さいころの個数
int trial = 10; //試行回数
int max[] = new int[p]; //最大値がn ならば、++new(n-1)
int result[] = new int[n]; //複数のさいころの目を保持
//---------------------------------
System.out.println("6 面のダイスを" + trial + "回振り、"
+ "出た目の最大値ごとに出現回数を表示する。");
for (int j=0; j<trial; ++j){
for (int i=0; i<n; ++i){
result[i] = d6.roll(1);
}
Arrays.sort(result); //昇順にソートされます
++max[result[result.length-1]-1]; //最大値の目の出現回数を++
}
double prob = 0;
for (int i=0; i<p; ++i){
System.out.print(i+1+"目"+max[i]+"回");
prob = (Math.pow((i+1.0)/6,trial) - Math.pow((i+.0)/6,trial))*100;
System.out.printf("P(%d) = %4.4f %% \n",i+1,prob);
}
}// end of main
}// end of class Sample_NDiceMaxVal
実行結果は次のようになりました。
C>java Sample_NDiceMaxVal
6 面のダイスを10 回振り、出た目の最大値ごとに出現回数を表示する。
1 目0 回P(1) = 0.0000 %
2 目0 回P(2) = 0.0017 %
3 目1 回P(3) = 0.0960 %
4 目0 回P(4) = 1.6365 %
5 目4 回P(5) = 14.4164 %
6 目5 回P(6) = 83.8494 %
試行回数を大きくすると、trial
)
確率密度関数のグラフは、
今回はここまで
演習のプログラムは今回ノーヒントでしたが、