このディレクトリの索引
http://hibari.2ch.net/test/read.cgi/tech/1296387672/697
#  [1] 授業単元: C言語入門 
#  [2] 問題文(含コード&リンク):  
#  問1 
#  サイコロをN個、振って、全てのサイコロが同じ数の目が出るまでにかかった 
#  処理時間を表記する。1〜100回など切りの良い個数まで全て計測し、出力形式 
#  N=1 x秒   
#  N=2 y秒 
#  ・ 
#  ・ 
#  N=100 z秒 
#  の形式で出力する。 
#   
#  

'サイコロをN個、振って、全てのサイコロが同じ数の目が出るまでにかかった処理時間を表記する。1〜100回など切りの良い個数まで全て計測して表示する'(Max) :-
        for(1,N,Max),
        'サイコロをN個、振って、全てのサイコロが同じ数の目が出るまでにかかった処理時間を表記する。1〜100回など切りの良い個数まで全て計測して表示する'(N,_何秒),
        write_formatted('%t = %t秒\n',[N,_何秒]),
        N = Max.

'サイコロをN個、振って、全てのサイコロが同じ数の目が出るまでにかかった処理時間を表記する。1〜100回など切りの良い個数まで全て計測して表示する'(N,_何秒) :-
        A is time,
        length(L,N),
        repeat,
        'N個のサイコロを振る'(L),
        all(L,_),
        B is time,
        _何秒 is B - A,!.

'N個のサイコロを振る'([_サイコロの目|R]) :-
        _サイコロの目 is (random mod 6) + 1,
        'N個のサイコロを振る'(R),!.
'N個のサイコロを振る'([]) :- !.