このディレクトリの索引
http://toro.2ch.net/test/read.cgi/tech/1342966104/308
#  [1] 授業単元:C言語プログラム演習 
#  [2] 問題文: 
#  http://ime.nu/codepad.org/gSiVgqsJ 
#  上記の関数ransuuは、整数型の引数uを受け取ると1からuまでの乱数(1からuまでの中からでたらめに選んだ数)を返す。 
#  この関数を用いて、1から10までの乱数をN回発生させ、1から10までのそれぞれの数が発生した回数を数値で表示するプログラムを作成せよ。 
#  但し、#define文でNを100回と設定せよ。 
#  <出力例> 
#  1 :9回 
#  2 :11回 
#  3 :10回 
#   
#  10 :5回 
#  

'1から10までの乱数をN回発生させ、1から10までのそれぞれの数が発生した回数を数値で表示する。但し、#define文でNを100回と設定せよ。 ' :-
        '但し、#define文でNを100回と設定せよ。',
        '1から10までの乱数をN回発生させ'(L),
        '1から10までのそれぞれの数が発生した回数を数値で表示する'(L).

'但し、#define文でNを100回と設定せよ。' :-
        abolish(発生回数/1),
        asserta(発生回数(100)).

'1から10までの乱数をN回発生させ'(L) :-
        発生回数(N),
        '1からuまでの乱数をN回発生させ'(10,N,L).

'1からuまでの乱数をN回発生させ'(_u,N,L) :-
        findall(_1から_uまでの乱数,(
                    between(1,N,_),
                    _1から_uまでの乱数 is random(_u) + 1),
                L).

'1から10までのそれぞれの数が発生した回数を数値で表示する'(L) :-
        between(1,10,N),
        count(member(N,L),_度数),
        writef('%t: %t回\n',[N,_度数]),
        N = 10.