Advertisement
Guest User

Untitled

a guest
Mar 20th, 2019
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Prolog 1.11 KB | None | 0 0
  1. sum([],0).
  2.  
  3. sum([H|T],S) :- sum(T,S2), S is S2+H.
  4.  
  5. lenggth([], 0).
  6.  
  7. lenggth([_|T], L) :- lenggth(T, L_T), L is L_T+1.
  8.  
  9. x_cp(List2, X) :- sum(List2, S), lenggth(List2, L), X is S div L.
  10.  
  11. getmin([X], X).
  12.  
  13. getmin([H|Tail], H):- getmin(Tail, TailMin), H < TailMin.
  14.  
  15. getmin([H|Tail], TailMin):- getmin(Tail, TailMin), TailMin =< H.
  16.  
  17. first_N([], _, []).
  18.  
  19. first_N(_, 0, []).
  20.  
  21. first_N([H|T], N, [H|T1]) :- N2 is N-1, first_N(T, N2, T1).
  22.  
  23. level1([],_,0).
  24.  
  25. level1([H|T],X,K) :- H > X, !, level1(T,X,H1_T), K is H1_T + 1.
  26.  
  27. level1([H|T],X,H1) :- H =< X, level1(T,X,H1).
  28.  
  29. level2([],_,0).
  30.  
  31. level2([H|T],X,K) :- H < X, !, level2(T,X,H1_T), K is H1_T + 1.
  32.  
  33. level2([H|T],X,H1) :- H >= X, level2(T,X,H1).
  34.  
  35. delta(List1, List2, X, Y) :- level1(List1,X,P1),
  36. level1(List2,X,P2), level2(List1,X,P3),
  37. level2(List2,X,P4),
  38. Y is abs(P1 - P2) + abs(P3 - P4).
  39.  
  40. delta2([], [], [], _).
  41.  
  42. delta2(List1, List2, [], X) :- lenggth(List1, L1),
  43. lenggth(List2, L2), L1<L2.
  44.  
  45. delta2([H1|T1], List2, [H3|T3], X) :- lenggth(List2, L2),
  46. first_N([H1|T1],L2,NewList1), delta(NewList1, List2, X, H3),
  47. delta2(T1, List2, T3, X).
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement