Guest User

Untitled

a guest
Jul 6th, 2018
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Prolog 1.21 KB | None | 0 0
  1. gen(0).
  2.  
  3. gen(X) :- gen(X,1).
  4. gen(X,X).
  5. gen(X,Y) :- X is (-1)*Y.
  6. gen(X,Y) :- Z is Y + 1, gen( X, Z ).
  7.  
  8. sum( X, Y, Z ) :-
  9.     \+ var(X),
  10.     \+ var(Y),
  11.     Z is X + Y,!.
  12.    
  13. sum( X, Y, Z ) :-
  14.     \+ var(X),
  15.     \+ var(Z),
  16.     Y is Z - X,!.
  17.    
  18. sum( X, Y, Z ) :-
  19.     \+ var(Y),
  20.     \+ var(Z),
  21.     X is Z - Y,!.
  22.  
  23.  
  24. sum( X, Y, Z ) :-
  25.     var(X),
  26.     var(Y),
  27.     \+var(Z),
  28.     gen(X),
  29.     Y is Z - X.
  30.    
  31. sum( X, Y, Z ) :-
  32.     \+var(X),
  33.     var(Y),
  34.     var(Z),
  35.     gen(Y),
  36.     Z is X + Y.
  37.    
  38. sum( X, Y, Z ) :-
  39.     var(X),
  40.     \+var(Y),
  41.     var(Z),
  42.     sum(Y, X, Z).
  43.    
  44.  
  45. mniejsza_suma_arytm(X,Y) :- mniejsza_suma_arytm(X,Y,0).
  46. mniejsza_suma_arytm(X,0,L) :-
  47.     A is X-L,
  48.     A<0,!.
  49. mniejsza_suma_arytm(X,Y,L) :-
  50.     A is X-L,
  51.     K is L+1,
  52.     mniejsza_suma_arytm(A, B, K ),
  53.     Y is B+L.
  54.  
  55. wieksza_suma_arytm(X,Y) :- wieksza_suma_arytm(X,Y,0).
  56. wieksza_suma_arytm(X,L,L) :-
  57.     A is X-L,
  58.     A<0,!.
  59. wieksza_suma_arytm(X,Y,L) :-
  60.     A is X-L,
  61.     K is L+1,
  62.     wieksza_suma_arytm(A, B, K ),
  63.     Y is B+L.
  64.  
  65. bijekcja( X, Y ) :- bijekcja(0, X, Y).
  66.  
  67. bijekcja( N, X, Y ):-
  68.     mniejsza_suma_arytm( N, M ),
  69.     wieksza_suma_arytm( N, W),
  70.     X is N-M,
  71.     Y is W-N-1.
  72.    
  73. bijekcja( N, X, Y ) :-
  74.     M is N+1,
  75.     bijekcja( M, X, Y).
  76. sum(X, Y, Z) :-
  77.     var(X),
  78.     var(Y),
  79.     var(Z),
  80.     bijekcja(X,Y),
  81.     Z is X + Y.
Add Comment
Please, Sign In to add comment