このディレクトリの索引
http://hibari.2ch.net/test/read.cgi/tech/1311089619/900
#  [1] 授業単元:プログラミング 
#  [2] 問題文(含コード&リンク): 
#  C言語の乱数発生関数を使ってサイコロ関数  int dice( void ) を作成し、以下の統計的な性質を検証せよ。 
#  (1) 10,100,1000,1万回、10万回、100万回、1000万回、1億回の試行での 期待値(平均値)の変化 
#  (2)前記の試行回数での各数字の出目の確率 
#  (3)2つのサイコロを投げた時の11、22のようなぞろ目の確率 
#  レポートのグラフはExcelを用いる。 
#  

'10,100,1000,1万回、10万回、100万回、1000万回、1億回の試行での 期待値(平均値)の変化' :-
        試行回数での各数字の出目の確率(0,[0,0,0,0,0,0,0,0,0,0]).

試行回数での各数字の出目の確率(100000000,L) :-
        各数字の出目の確率を表示する(100000000,L),!.
試行回数での各数字の出目の確率(N,L) :-
        member(N,[10,100,1000,10000,100000,1000000,10000000]),
        各数字の出目の確率を表示する(N,L),
        fail.
試行回数での各数字の出目の確率(M,L1) :-
        _ランダム値 is random(10),
        ランダム値頻度の更新(_ランダム値,L1,L2),
        M2 is M + 1,
        試行回数での各数字の出目の確率(M2,L2).

ランダム値頻度の更新(N,L1,L2) :-
        append(L0,[M|R],L2),
        length(L0,N),
        M2 is M + 1,
        append(L0,[M2|R],L2),!.

各数字の出目の確率を表示する(N,[_0,_1,_2,_3,_4,_5,_6,_7,_8,_9]) :-
        writef('試行回数 %t :: '),
        append(L0,[_頻度|R],[_0,_1,_2,_3,_4,_5,_6,_7,_8,_9]),
        length(L0,M),
        _確率 is _頻度 / N,
        writef('%t: %t,',[M,_確率]),
        R = [],
        write('\n').