Advertisement
Guest User

Untitled

a guest
Jul 28th, 2017
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Prolog 1.27 KB | None | 0 0
  1. sortuj(L,W) :- pom( L,[],W ).
  2. pom( [],A,A ) .
  3. pom( [H|T],A,S ) :- babelek(H,T,NT,Max), pom( NT,[Max|A],S ) .
  4. babelek( X,[],[],X ) .
  5. babelek( X,[Y|T],[Y|NT],Max ) :- X>Y, babelek(X,T,NT,Max) .
  6. babelek( X,[Y|T],[X|NT],Max ) :- X=<Y, babelek(Y,T,NT,Max) .
  7.  
  8.  
  9.  
  10. gray_bin( [H|T],[H|NT] ) :- zamien(T,H,NT) .
  11. zamien( [],_,[] ) .
  12. zamien( [GH|GT],Poprz,[WH|WT] ) :- xor(Poprz,GH,WH), zamien(GT,WH,WT) .
  13.  
  14. bin_gray(B,G) :- przesun_prawo(B,W), ksoruj(B,W,G) .
  15. ksoruj( [],[],[] ) .
  16. ksoruj( [H1|T1],[H2|T2],[WH|WT] ) :- xor(H1,H2,WH), ksoruj(T1,T2,WT) .
  17. przesun_prawo( L,W ) :- append( [0],L,Q ), tnij(Q,W) .
  18. append( [],X,X ).
  19. append( [H|T],Y,[H|NT] ) :- append(T,Y,NT) .
  20. tnij( [H],[]) .
  21. tnij( [H|T],[H|NT] ) :- tnij(T,NT) .
  22. xor(0,0,0) .
  23. xor(1,1,0) .
  24. xor(0,1,1) .
  25. xor(1,0,1) .
  26.  
  27.  
  28.  
  29. % właściwy predykat
  30. eratostenes(L,W) :- zapelnij(2,L,S), sprawdz(S,W) .
  31. % generowanie liczb całkowitych od 2 do N włącznie
  32. zapelnij( D,G,[D|T] ) :- D=<G, !, M is D+1, zapelnij(M,G,T) .
  33. zapelnij( _,_,[] ) .
  34. % sprawdzanie kolejnych liczb
  35. sprawdz( [],[] ) .
  36. sprawdz( [H|T],[H|NT] ) :- odsiej(H,T,A), sprawdz(A,NT) .
  37. % usuwanie wielokrotności danej liczby
  38. odsiej( _,[],[] ) .
  39. odsiej( P,[H|T],[H|NT] ) :- \+ 0 is H mod P, odsiej(P,T,NT) .
  40. odsiej( P,[H|T],NT ) :- 0 is H mod P, odsiej(P,T,NT) .
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement