このディレクトリの索引
http://pc12.2ch.net/test/read.cgi/tech/1263824755/307
#  [1] Cプログラミング入門:  
#  [2] http://ime.nu/kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10460.txt 
#  
'1:0〜99 の 100 個の数字から異なる 30 個を選び,配列 COM[30] に格納する'(COM) :-
    'COMを確保する'(COM),
    '0〜99 の 100 個の数字から異なる 30 個を選び,配列 COM[30] に格納する'([],COM).

'0〜99 の 100 個の数字から異なる 30 個を選び,配列 COM[30] に格納する'(COM,COM) :- !.
'0〜99 の 100 個の数字から異なる 30 個を選び,配列 COM[30] に格納する'(L1,COM) :-
    '0〜99の数字'(N),
    \+(member(N,L1)),
    '0〜99 の 100 個の数字から異なる 30 個を選び,配列 COM[30] に格納する'([N|L1],COM),!.
'0〜99 の 100 個の数字から異なる 30 個を選び,配列 COM[30] に格納する'(L1,COM) :-
    '0〜99 の 100 個の数字から異なる 30 個を選び,配列 COM[30] に格納する'(L1,COM),!.

'COMを確保する'(COM) :- length(COM,30).

'0〜99の数字'(N) :- N is random mod 100.