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

'コイン投げも同様にして、Sn = X1 + ・・・ + Xn のSn,そのmax、min を調べよ。'(_n) :-
        append(_,[_試行回数|R],[10,100,1000,10000,100000]),
        試行回数の集計ならび(_試行回数,_最大値,_最小値),
        整数から文字列(6,_試行回数,_試行回数文字列),
        writef('試行回数%t: 最大値=%t 最小値=%t\n',[_試行回数文字列,_最大値,_最小値]),
        R = [].

試行回数の集計ならび(_試行回数,_最大値,_最小値) :-
        findall(S,(
                    between(1,_試行回数,_),
                    count((   between(1,_n,_),
                              1 is random(1)),
                            S)),
                L),
        min(L,_最小値),
        max(L,_最大値),!.

整数から文字列(_文字列桁,_整数,_文字列) :-
        桁不足の場合頭部には空白を詰める(_文字列桁,_整数,_文字列),!.
整数から文字列(_文字列桁,_整数,_文字列) :-
        atom_number(_文字列,_整数).

桁不足の場合頭部には空白を詰める(_文字列桁,_整数,_文字列) :-
        length(L,_文字列桁),
        number_chars(_整数,Chars),
        append(L0,Chars,L),
        all(L0,' '),
        atomic_list_concat(L,_文字列).