This commit is contained in:
Super_JK
2022-03-29 17:16:39 +02:00
parent 5b485c8fad
commit fe29a58e22
2 changed files with 98 additions and 0 deletions

65
TP2.pl Normal file
View 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
View 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).