このディレクトリの索引
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 として実行してみよ。分布は、**** を打って表示せよ。

'サイコロを10, 100 ,1000 ,10000 ,100000 回投げて分布を調べよ。'(_分布ならび) :-
        findall([_n,_1,_2,_3,_4,_5,_6],(
                    append(_,[_n|_],[10,100,100,10000,100000]),
                    'サイコロを_n回投げて分布を調べる'(_n,0,0,0,0,0,0,_1,_2,_3,_4,_5,_6)),
                _分布ならび).

'サイコロを_n回投げて分布を調べる'(0,_1,_2,_3,_4,_5,_6,_1,_2,_3,_4,_5,_6).
'サイコロを_n回投げて分布を調べる'(N,_1_1,_2_1,_3_1,_4_1,_5_1,_6_1) :-
        賽を投げる(_賽の目),
        分布の更新(_賽の目,_1_1,_2_1,_3_1,_4_1,_5_1,_6_1,_1_2,_2_2,_3_2,_4_2,_5_2,_6_2),
        N_1 is N - 1,
        'サイコロを_n回投げて分布を調べる'(N_1,_1_2,_2_2,_3_2,_4_2,_5_2,_6_2,_1,_2,_3_4,_5,_6).

賽を投げる(_賽の目) :-
        _賽の目 is random(6) + 1.

分布の更新(1,_1_1,_2,_3,_4,_5,_6,_1_2,_2,_3,_4,_5,_6) :-
        _1_2 is _1_1 + 1.
分布の更新(2,_1,_2_1,_3,_4,_5,_6,_1,_2_2,_3,_4,_5,_6) :-
        _2_2 is _2_1 + 1.
分布の更新(3,_1,_2,_3_1,_4,_5,_6,_1,_2,_3_2,_4,_5,_6) :-
        _3_2 is _3_1 + 1.
分布の更新(4,_1,_2,_3,_4_1,_5,_6,_1,_2,_3,_4_2,_5,_6) :-
        _4_2 is _4_1 + 1.
分布の更新(5,_1,_2,_3,_4,_5_1,_6,_1,_2,_3,_4,_5_2,_6) :-
        _5_2 is _5_1 + 1.
分布の更新(6,_1,_2,_3,_4,_5,_6_1,_1,_2,_3,_4,_5,_6_2) :-
        _6_2 is _6_1 + 1.