このディレクトリの索引
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億回の試行での 期待値(平均値)の変化' :-
        '2つのサイコロを投げた時の11、22のようなぞろ目の確率'(0,0).

'2つのサイコロを投げた時の11、22のようなぞろ目の確率'(100000000,_ゾロ目の回数) :-
        _ゾロ目の確率 is _ゾロ目の回数 / 100000000,
        writef('試行回数: %t,ゾロ目の確率: %t\n',[100000000,_ゾロ目の確率]),!.
'2つのサイコロを投げた時の11、22のようなぞろ目の確率'(N,_ゾロ目の回数) :-
        member(N,[10,100,1000,10000,100000,1000000,10000000]),
        _ゾロ目の確率 is _ゾロ目の回数 / N,
        writef('試行回数: %t,ゾロ目の確率: %t\n',[N,_ゾロ目の確率]),
        fail.
'2つのサイコロを投げた時の11、22のようなぞろ目の確率'(M,_ゾロ目の回数1) :-
         '2つのサイコロを投げた時の目'(_目1,_目2),
         'ゾロ目とは2つの目が同じということ'(_目1,_目2),
         M2 is M + 1,
         _ゾロ目の回数2 is _ゾロ目の回数1 + 1,
         '2つのサイコロを投げた時の11、22のようなぞろ目の確率'(M2,_ゾロ目の回数2),!.
'2つのサイコロを投げた時の11、22のようなぞろ目の確率'(M,_ゾロ目の回数) :-
         M2 is M + 1,
         '2つのサイコロを投げた時の11、22のようなぞろ目の確率'(M2,_ゾロ目の回数).

'2つのサイコロを投げた時の目'(_目1,_目2) :-
        ランダム関数をサイコロに模して二つの目を出す(_目1,_目2).

ランダム関数をサイコロに模して二つの目を出す(_目1,_目2) :-
        'random(6)は0-5が値域だから1を加える必要がある'(_目1,_目2).

'random(6)は0-5が値域だから1を加える必要がある'(_目1,_目2) :-
        _目1 is random(6) + 1,
        _目2 is random(6) + 1.

ゾロ目とは二つの目が同じということ(_目,_目).