このディレクトリの索引
http://hibari.2ch.net/test/read.cgi/tech/1312201995/827
#  [1] 授業単元:モンテカルロ 
#  [2] 問題文(含コード&リンク):http://ime.nu/ideone.com/foLSr 
#  
#  問題1. サイコロを10, 100 ,1000 ,10000 ,100000 回投げて分布を調べよ。
#  問題2. コイン投げも同様にして、Sn = X1 +....+ Xn のSn, そのmax,min を調べよ。
#  問題3.  面積
#  ∫ 1 
#    0  x^2 dx
#  をモンテカルロ法で求めよ。
#  
#  問題4. π の値をモンテカルロ法で求めよ。
#  問題5. 2 項分布をp=0.4 として実行してみよ。分布は、**** を打って表示せよ。

'コイン投げも同様にして、Sn = X1 +....+ Xn のSn, そのmax,min を調べよ。'(_n,_分布ならび) :-
        findall([_回数,_Sn,_max,_min],(
                    append(_,[_回数|_],[10,100,1000,10000,100000]),
                    'コインを指定された回数投げて_Sn,_max,_minを得る'(_回数,_n,_Sn,_Max,_Min)),
               _分布ならび).

'コインを指定された回数投げて_Sn,_max,_minを得る'(_回数,_n,_Sn,_Max,_Min) :-
        findall(_合計,(
                    for(1,_,_回数),
                    'コインを_n回投げて表となった回数'(_n,_合計)),
                L),
        sum(L,_Sn),
        max(L,_max),
        min(L,_min).

'コインを_n回投げて表となった合計'(_n,_合計回数) :-
        count((for(1,_,_n),1 is random(2)),_合計回数).