このディレクトリの索引
http://hibari.2ch.net/test/read.cgi/tech/1288531658/480
#  [1] 授業単元: プログラミング演習 
#  [2] 問題文(含コード&リンク): 配列の中の値をランダムで選択し、表示。また、ランダムでも、大きな値の方が選択されやすくして表示。配列の値={2,2,4,5,5,8,9,10,2,3} 
#  

ならびの値をランダムに選択し、表示(_ならび) :-
        length(_ならび,_長さ),
        R is random // _長さ + 1,
        list_nth(R,_ならび,A),
        write_formatted('%t\n',[A]).
ならびの値をランダムに選択し、表示(_ならび) :-
        ならびの値をランダムに選択し、表示(_ならび).

ならびの値を大きい値ほど選択されやすくしてランダムに選択し、表示(_ならび) :-
        length(_ならび,_長さ),
        R1 is random // _長さ + 1,
        list_nth(R1,_ならび,A),
        'Aと等しいか大きい値がでるまで'(_ならび,_長さ,A,B),
        write_formatted('%t\n',[B]).
ならびの値を大きい値ほど選択されやすくしてランダムに選択し、表示(_ならび) :-
        ならびの値を大きい値ほど選択されやすくしてランダムに選択し、表示(_ならび).

'Aと等しいか大きい値がでるまで'(_ならび,_長さ,A,B) :-
        R is random // _長さ + 1,
        list_nth(R,_ならび,B),
        B >= A,!.
'Aと等しいか大きい値がでるまで'(_ならび,_長さ,A,B) :-
        'Aと等しいか大きい値がでるまで'(_ならび,_長さ,A,B).