TP 2 + 3
This commit is contained in:
65
TP2.pl
Normal file
65
TP2.pl
Normal file
@@ -0,0 +1,65 @@
|
||||
% L2
|
||||
% Q1
|
||||
fibonacci(0,1).
|
||||
fibonacci(1,1).
|
||||
fibonacci(X,Y):-
|
||||
X > 1,
|
||||
N is X - 1,
|
||||
M is X - 2,
|
||||
fibonacci(N,R),
|
||||
fibonacci(M,S),
|
||||
Y is S +R.
|
||||
% Q2
|
||||
fibiter(X,Y):-
|
||||
fibiter(X,Y,1,1).
|
||||
fibiter(0,X,X,_).
|
||||
fibiter(X,Y,Z,V):-
|
||||
X >0,
|
||||
M is X -1,
|
||||
NV is Z + V,
|
||||
fibiter(M,Y,V,NV).
|
||||
|
||||
% Q3
|
||||
pgcd(A,0,A):-!.
|
||||
pgcd(A,A,A):-!.
|
||||
pgcd(0,A,A):-!.
|
||||
pgcd(A,B,X):-
|
||||
A > B,
|
||||
C is A mod B,
|
||||
pgcd(C,B,X).
|
||||
pgcd(A,B,X):-
|
||||
B > A,
|
||||
C is B mod A,
|
||||
pgcd(A,C,X).
|
||||
|
||||
% L3
|
||||
% Q2
|
||||
member(X,[X|_]).
|
||||
member(X,[_|L]) :-
|
||||
member(X,L).
|
||||
|
||||
% Q3
|
||||
subset([],_).
|
||||
subset(L1,L2):-
|
||||
[X | L] = L1,
|
||||
member(X,L2),
|
||||
subset(L,L2).
|
||||
|
||||
% Q4
|
||||
sublist(_,[]):-false.
|
||||
sublist([],_).
|
||||
sublist([X | L1],[Y | L2]):-
|
||||
X = Y,
|
||||
subset(L1,L2).
|
||||
|
||||
sublist([X | L1],[Y | L2]):-
|
||||
X \= Y,
|
||||
subset([X | L1],L2).
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
33
TP3.pl
Normal file
33
TP3.pl
Normal file
@@ -0,0 +1,33 @@
|
||||
%L2
|
||||
%Q5
|
||||
takeout(E,[E | L1],L1).
|
||||
|
||||
takeout(E,[F | L1],[F | L2]):-
|
||||
takeout(E,L1, L2).
|
||||
|
||||
|
||||
|
||||
%Q7
|
||||
|
||||
inverse([E],[E]).
|
||||
|
||||
inverse([H | L1], L):-
|
||||
var(L),
|
||||
inverse(L1,H2),
|
||||
append(H2,[H],L).
|
||||
|
||||
inverse([H | L1], L):-
|
||||
nonvar(L),
|
||||
append(H2,[H],L),
|
||||
inverse(L1,H2).
|
||||
|
||||
%Q8
|
||||
|
||||
inverse2(L1,L2):-
|
||||
inverse_iter(L1,[],L2).
|
||||
|
||||
|
||||
inverse_iter([],L2,L2):-!.
|
||||
|
||||
inverse_iter([E |L1],L2,R):-
|
||||
inverse_iter(L1, [E | L2],R).
|
||||
Reference in New Issue
Block a user