Advertisement
Guest User

Untitled

a guest
Apr 26th, 2017
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Prolog 2.26 KB | None | 0 0
  1. %1
  2. diff([],[]).
  3. diff([_],[]).
  4.  
  5. even(X) :-Y is mod(X,2), Y =:= 0.
  6. diff([A,B|Tail],[Diff|DiffTail]) :- even(B), even(A), Diff is B-A, diff(Tail,DiffTail).
  7. diff([_,_|Tail],DiffTail):- diff(Tail,DiffTail).
  8.  
  9.  
  10.  
  11. %3
  12. diff([],[], []).
  13. diff(_,[], []).
  14. diff([],_, []).
  15.  
  16. diff([A|TailA], [B|TailB], [Сomposition|СompositionTail]):-
  17.     Сomposition is A-B, diff(TailA, TailB, СompositionTail).
  18.  
  19. len([], 0).
  20. len([_|T], L) :- len(T, Y), L is Y + 1.
  21.  
  22. diff_len([], [], 0).
  23. diff_len(A, B, X) :- diff(A, B, Diff), len(Diff, X).
  24.  
  25.  
  26. %4
  27. diff([],[], []).
  28. diff(_,[], []).
  29. diff([],_, []).
  30.  
  31. diff([A|TailA], [B|TailB], [Сomposition|СompositionTail]):-
  32.     Сomposition is A-B, diff(TailA, TailB, СompositionTail).
  33.  
  34. min([], R, R).
  35. min([X|Xs], WK, R):- X < WK, min(Xs, X, R).
  36. min([X|Xs], WK, R):- X >= WK, min(Xs, WK, R).
  37. min([X|Xs], R):- min(Xs, X, R).
  38.  
  39. diff_min([], [], []).
  40. diff_min(A, B, X) :- diff(A, B, Diff), min(Diff, X).
  41.  
  42.  
  43. %5
  44. composition([],[], []).
  45. composition([_],[], []).
  46. composition([],[_], []).
  47.  
  48. composition([A|TailA], [B|TailB], [Сomposition|СompositionTail]):-
  49.     Сomposition is A*B, composition(TailA, TailB, СompositionTail).
  50.  
  51.  
  52. %6
  53. composition([],[], []).
  54. composition([_],[], []).
  55. composition([],[_], []).
  56.  
  57. composition([A|TailA], [B|TailB], [Сomposition|СompositionTail]):-
  58.     Сomposition is A*B, composition(TailA, TailB, СompositionTail).
  59.  
  60. max([], R, R).
  61. max([X|Xs], WK, R):- X > WK, max(Xs, X, R).
  62. max([X|Xs], WK, R):- X =< WK, max(Xs, WK, R).
  63. max([X|Xs], R):- max(Xs, X, R).
  64.  
  65. del([],_,[]).
  66. del([X|T],X,T):- !.
  67. del([Y|T],X,[Y|R]):- X=\=Y, del(T,X,R).
  68.  
  69. vsort([],[]).
  70. vsort(X,[A|T]) :- max(X,A), del(X,A,XX), vsort(XX,T).
  71.  
  72. sort_composition(A, B, X) :- composition(A, B, C), vsort(C, X).
  73.  
  74.  
  75. %7
  76. diff([],[], []).
  77. diff(_,[], []).
  78. diff([],_, []).
  79.  
  80. diff([A|TailA], [B|TailB], [Сomposition|СompositionTail]):-
  81.     Сomposition is A-B, diff(TailA, TailB, СompositionTail).
  82.  
  83. min([], R, R).
  84. min([X|Xs], WK, R):- X < WK, min(Xs, X, R).
  85. min([X|Xs], WK, R):- X >= WK, min(Xs, WK, R).
  86. min([X|Xs], R):- min(Xs, X, R).
  87.  
  88. del([],_,[]).
  89. del([X|T],X,T):- !.
  90. del([Y|T],X,[Y|R]):- X=\=Y, del(T,X,R).
  91.  
  92. vsort([],[]).
  93. vsort(X,[A|T]) :- min(X,A), del(X,A,XX), vsort(XX,T).
  94.  
  95. sort_diff(A, B, X) :- diff(A, B, C), vsort(C, X).
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement