このディレクトリの索引
http://toro.2ch.net/test/read.cgi/tech/1357748713/528
#  [1] 授業単元: C言語入門 
#  [2] 問題文(含コード&リンク): 
#  入力された数値の回数分だけ乱数を使ってコイン投げを行い, 
#  表裏が出る枚数をカウントして表示させるプログラム を作りなさい。 
#  

'入力された数値の回数分だけ乱数を使ってコイン投げを行い,表裏が出る枚数をカウントして表示させる' :-
        '入力された数値の'(_入力された数値),
        '数値の回数分だけ乱数を使ってコイン投げを行い,表裏が出る枚数をカウントして'(_入力された数値,_表が出た枚数,_裏が出た枚数),
        表示させる(_表が出た枚数,_裏が出た枚数).

'入力された数値の'(_入力された数値) :-
        整数を得る(コイン投げをする回数,_入力された数値 > 0,_入力された数値).

'数値の回数分だけ乱数を使ってコイン投げを行い,表裏が出る枚数をカウントして'(_入力された数値) :-
        findall([_表,_裏],(
                    between(1,_入力された数値,_),
                    '乱数を使ってコイン投げを行い'(_表,_裏)),
                LL),
        列要素の加算(LL,[_表が出た枚数,_裏が出た枚数]),

'乱数を使ってコイン投げを行い'(1,0) :-
        1 is random(2),!.
'乱数を使ってコイン投げを行い'(0,1).

列要素の加算(LL,_合計ならび) :-
        転置(LL,LL2),
        findall(_合計,(
                    member(L,LL2),
                    sum(L,_合計)),
                _合計ならび).             

表示させる(_表が出た枚数,_裏が出た枚数) :-
        writef('表が出た枚数 = %t, 裏が出た枚数 = %t\n',[_表が出た枚数,_裏が出た枚数]).