Advertisement
Guest User

Untitled

a guest
Oct 17th, 2018
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.30 KB | None | 0 0
  1. bin(X,L1) :- X =:= 0, L1=[],!.
  2.  
  3. bin(X,L1) :- X1 is div(X,2),
  4. X2 is mod(X,2),
  5. bin(X1,T2), L1=[X2|T2].
  6.  
  7.  
  8.  
  9. odw(L1,L2) :- L1=[],L2=[].
  10. odw(L1,L2) :- L1=[H|T],
  11. append(T2,[H],L2),
  12. odw(T,T2),!.
  13.  
  14.  
  15. bintru(X,L1) :- bin(X,L2), odw(L2,L1).
  16.  
  17.  
  18. zera(X,L2) :- X=:=0, L2=[].
  19. zera(X,L2) :- X1 is X-1, L2=[0|T], zera(X1,T),!.
  20.  
  21.  
  22. dopisywanie(L1,L2,L3) :- length(L1,D1) , length(L2,D2), D1>D2,
  23. D3 is D1-D2, dop(L2,D3,L3).
  24. dopisywanie(L1,L2,L3) :- length(L1,D1) , length(L2,D2), D1=<D2,
  25. D3 is D2-D1, dop(L1,D3,L3).
  26.  
  27.  
  28. porownanie(L1,L2,I) :- I is 0, L1=[],L2=[].
  29. porownanie(L1,L2,I) :- L1=[H1|T1],L2=[H2|T2], porownanie(T1,T2,I1),
  30. H1=:=H2,
  31. I is I1+0.
  32.  
  33. porownanie(L1,L2,I) :- L1=[H1|T1],L2=[H2|T2], porownanie(T1,T2,I1),
  34. H1=\=H2,
  35. I is I1+1.
  36.  
  37.  
  38. hammond(X,Y,W) :-
  39. bintru(X,L1),
  40. bintru(Y,L2),
  41.  
  42. length(L1,D1) , length(L2,D2), D1>D2,
  43. dopisywanie(L1,L2,L3), porownanie(L1,L3,W).
  44.  
  45. hammond(X,Y,W) :-
  46. bintru(X,L1),
  47. bintru(Y,L2),
  48. length(L1,D1) , length(L2,D2), D1=<D2,
  49. dopisywanie(L1,L2,L3), porownanie(L3,L2,W).
  50.  
  51.  
  52.  
  53. dop(L1,I,LW) :- I=:=0, LW=L1,!.
  54. dop(L1,I,LW) :- I1 is I-1,dop(L1,I1,TW), append(TW,[0],LW).
  55.  
  56.  
  57. dopisywanie2(L1,I,L2):- I=0,L2=L1,!.
  58. dopisywanie2(L1,I,L2):-
  59. I1 is I-1,
  60. dopisywanie2(L1,I1,L2A),
  61. append(L2A,[0],L2).
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement