Описать предикат, определяющий количество инверсий в списке
(т.е. количество пар его элементов, в которых первый элемент
встречается в списке раньше, но по величине больше второго).
Вариант 1 (бай вхит, выводит хрень):
head(X,[X|L]).
tail(L,[X|L]).
Вариант 2 (бай джамшут, работает):
входные данные: список [1,2,4,5,3]
%9. Описать предикат, определяющий количество инверсий в
%списке (т.е. количество пар его элементов, в которых первый
%элемент встречается в списке раньше, но по величине больше второго).
% Bilet5 Variant 2
% Patched by JamshyT 14.01.13
% Special for AISTd-31 :)
% To start type: jstart.
podposled([],[]).
podposled(X,[_|T]):-
podposled(X,T).
podposled([X|T],[X|R]):-
podposled(T,R).
dlin([],0).
dlin([X|L],K):-dlin(L,K1),K is K1+1.
para(L,P):-podposled(P,L),dlin(P,2).
inv(L,[X|Y]):-para(L,[X|Y]),X>Y.