N88-BASICで二項分布 (2回目)

2021/11/10(水)
N88-BASICで二項分布 (2回目)
 
二項分布(Binomial distribution)とは
 
独立試行の事象Aが確率pで起こるとする
n回の独立試行でAが起こった回数Xとその確率P
の確率分布を二項分布といいB(n, p)で表す
 
また、B(n, p)のときX=rとなる確率Pは
nCrpr(1-p)n-r となる
 
今回はOver flowしにくい計算方法です
 
p, q = (1-p)
r, s = (n-r)
についてr < sとなるようにr,sとp,qを
入替える
 
nCrは大きくなるので先にpr(1-p)n-rを掛ける
と有効桁が落ちて0になってしまいます
 
nCrpr(1-p)n-r が1を超えている間
p(rを超えない回数)と(1-p)(n-rを超えない回数)
を掛けると言う方法で出来るだけOver flowを
防いでいます
 
残ったpと(1-p)はその分だけ最後に掛けています
 
当たり前ですが倍精度浮動小数点型の最小値
に限界があるため確率が小さすぎると0に
なってしまいます
 
10000回コインを投げて5000回表が出る確率
(10000個のコインを投げて5000個が表の確率)
は約0.007979(0.7979%)です
 
NL-BASICとblg~.zip(bino002.bas)は
このブログ(以下のリンク)から
ダウンロードできます

https://ulprojectmail.blogspot.com
Readme.txtを読んで遊んで下さい




 








このブログの人気の投稿

NEWS

N88-BASICでゲーム (1回目)