Ai - Lab - Assignment - SD
Ai - Lab - Assignment - SD
Group 1
Email Id [email protected]
JIS College of Engineering
Department of Computer Science and Engineering
Paper Name: Artificial Intelligence Lab
Paper Code: CS 701A
max(integer,integer,integer)
clauses
max(A,B,C):-
A>B,
A>C,
write(A).
max(A,B,C):-
A>B,
write(C).
max(_,B,C):-
B>C,
write(B).
max(_,_,C):-
write(C).
JIS College of Engineering
Department of Computer Science and Engineering
Paper Name: Artificial Intelligence Lab
Paper Code: CS 701A
2. Write a program in PROLOG to calculate the factorial of a number.
Ans-
fact(0,1).
fact(N,F):-
(
gcd(X,Y,Z):-
R is mod(X,Y),
gcd(Y,R,Z).
At End Position-
ins_end(X,Y,Z):-
append(Y,[X],Z).
JIS College of Engineering
Department of Computer Science and Engineering
Paper Name: Artificial Intelligence Lab
Paper Code: CS 701A
7. Write a program in PROLOG to find the GCD of the elements of a
list.
Ans-
gcd(0,X,X):- X > 0, !.
gcd(X,Y,Z):- X>=Y, X1 is X -Y, gcd(X1,Y,Z).
gcd(X,Y,Z):- X<Y, X1 is Y-X, gcd(X1,X,Z).
gcdL([H,H1|T],Z):-gcd(H,H1,X),gcdL([X|T],Z).
gcdL([H1,H2],Z):-gcd(H1,H2,Z).
list_max([], P, P).
list_max([H|T], P, O) :-
( H>P
-> list_max(T, H, O)
; list_max(T, P, O)).
list_rev([],[]).
JIS College of Engineering
Department of Computer Science and Engineering
Paper Name: Artificial Intelligence Lab
Paper Code: CS 701A
list_rev([Head|Tail],Reversed) :-
list_rev(Tail, RevTail),list_concat(RevTail, [Head],Reversed).
list_delete(X,[X|L1], L1).
write('Move top disk from '), write(X), write(' to '), write(Y), nl.
move(N,X,Y,Z) :-
N>1,
M is N-1,
move(M,X,Z,Y),
move(1,X,Y,_),
move(M,Z,Y,X).
safe([]).
safe([Queen|Others]) :-
safe(Others),
noattack(Queen,Others,1).
noattack(_,[],_).
noattack(Y,[Y1|Ylist],Xdist) :-
Y1 - Y =\= Xdist, % Not upward diagonal attack
Y - Y1 =\= Xdist, % Not downward diagonal attack
Dist1 is Xdist + 1,
noattack(Y,Ylist,Dist1).
JIS College of Engineering
Department of Computer Science and Engineering
Paper Name: Artificial Intelligence Lab
Paper Code: CS 701A
16 Write a Prolog Program to find the sum of inverse of N numbers.
Ans-
sumofinverse(N,R) :-
sumofinverse(N,0,R).
sumofinverse(0,R,R).
sumofinverse(N,T,R) :- N > 0 , T1 is T+(1/N), N1 is N-1,
sumofinverse(N1,T1,R).