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

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

'1から99までを値域とする8つの整数を乱数を使って順に発生させて中央値が22となる'(L1,L) :-
        乱数を発生させる(_乱数),
        乱数を挿入して整列させる(_乱数,L1,L2),
        '1から99までを値域とする8つの整数を乱数を使って順に発生させて中央値が22となるの二'(L2,LL).

'1から99までを値域とする8つの整数を乱数を使って順に発生させて中央値が22となるの二'(L1,L) :-
        中央値が存在する(L1,L).
'1から99までを値域とする8つの整数を乱数を使って順に発生させて中央値が22となるの二'(L1,L) :-
        '1から99までを値域とする8つの整数を乱数を使って順に発生させて中央値が22となる'(L1,L).

中央値が存在する(L1,L) :-
        append(L0,[[_1,_2,_3,_4,_5,_6,_7,_8]|R],L1),
        44 is _4 + _5,
        中央値が存在する(L1,L0,[_1,_2,_3,_4,_5,_6,_7,_8],R,L).

中央値が存在する(L1,_,L,_,L).
中央値が存在する(L1,L0,_,R,L) :-
        append(L0,R,L2),
        '1から99までを値域とする8つの整数を乱数を使って順に発生させて中央値が22となる'(L2,L).


乱数を発生させる(_乱数) :-
        _乱数 is random(99) + 1.

乱数を挿入して整列させる(_乱数,[],[_乱数]) :- !.
乱数を挿入して整列させる(_乱数,[N|R],[_乱数,N|R]) :-
        _乱数 =< N,!.
乱数を挿入して整列させる(_乱数,[N|R1],[N|R2]) :-
        _乱数 > N,
        乱数を挿入して整列させる(_乱数,R1,R2).