このディレクトリの索引
#  
#  1から99までを値域とする7つの整数を乱数を使って順に発生させて中央値が22となるPrologプログラムを作成しなさい。
#   

'1から99までを値域とする7つの整数を乱数を使って順に発生させて中央値が22となるPrologプログラムを作成しなさい。'(_乱数ならび) :-
        '1から99までを値域とする乱数'(_乱数),
        '1から99までを値域とする7つの整数を乱数を使って順に発生させて中央値が22となる'(_乱数,0,0,0,_乱数ならび).

'1から99までを値域とする7つの整数を乱数を使って順に発生させて中央値が22となる'(_,1,3,3,[]) :- !.
'1から99までを値域とする7つの整数を乱数を使って順に発生させて中央値が22となる'(22,0,_22以下の頻度_1,_22以下の頻度_1,[22|R]) :-
        var(_22の枠),
        '1から99までを値域とする乱数'(_乱数),
        '1から99までを値域とする7つの整数を乱数を使って順に発生させて中央値が22となる'(_乱数,1,_22以下の頻度_1,_22以下の頻度_1,R),!.
'1から99までを値域とする7つの整数を乱数を使って順に発生させて中央値が22となる'(_値,_22,_22以下の頻度_1,_22以下の頻度_1,[_値|R]) :-
        _値 =< 22,
        _22以下の頻度_1 < 3,
        _22以下の頻度_2 is _22以下の頻度_1 + 1,
        '1から99までを値域とする乱数'(_乱数),
        中央値が22となる(_乱数,_22,_22以下の頻度_2,_22以上の頻度_1,R),!.
'1から99までを値域とする7つの整数を乱数を使って順に発生させて中央値が22となる'(_値,_22,_22以下の頻度_1,_22以下の頻度_1,[_値|R]) :-
        _値 >= 22,
        _22以上の頻度_1 < 3,
        _22以上の頻度_2 is _22以上の頻度_1 + 1,
        '1から99までを値域とする乱数'(_乱数),
        '1から99までを値域とする7つの整数を乱数を使って順に発生させて中央値が22となる'(_乱数,_22,_22以下の頻度_1,_22以上の頻度_2,R),!.
'1から99までを値域とする7つの整数を乱数を使って順に発生させて中央値が22となる'(_,_22,_22以下の頻度_1,_22以下の頻度_1,R) :-
        '1から99までを値域とする乱数'(_乱数),
        '1から99までを値域とする7つの整数を乱数を使って順に発生させて中央値が22となる'(_乱数,_22,_22以下の頻度_1,_22以上の頻度_1,R),!.

'1から99までを値域とする乱数'(_乱数) :-
        _乱数 is random(99) + 1.