Zum Inhalt
Prolog
Aus ProgrammingWiki
Archivierte Version vom 2019-11-04T19:27:47+00:00.
Aktuelle Version
Welche Befehle dieser Interpreter versteht finden Sie hier:
Prädikatliste
.
mann(adam). mann(tobias). mann(frank). frau(eva). frau(daniela). frau(ulrike). vater(adam,tobias). vater(tobias,frank). vater(tobias,ulrike). mutter(eva,tobias). mutter(daniela,frank). mutter(daniela,ulrike). grossvater(X,Y) :- vater(X,Z), vater(Z,Y). grossvater(X,Y) :- vater(X,Z), mutter(Z,Y).
grossvater(X,frank).
ausführen
%queens(N,[N1,N2,...,NN]) is true if you can put a queen on an NxN % in the ith rank of the nth file, s.t. no % queen attacks any other queen. queens(N,Qs) :- range(1,N,Ns), queens(Ns,[],Qs). queens(UnplacedQs, SafeQs, Qs) :- selectq(Q, UnplacedQs, UnplacedQs1), \+ attack(Q,SafeQs), queens(UnplacedQs1,[Q|SafeQs],Qs). queens([],Qs,Qs). attack(X,Xs) :- attack(X, 1, Xs). attack(X,N,[Y|_]) :- X is Y+N ; X is Y-N. attack(X,N,[_|Ys]) :- N1 is N+1, attack(X,N1,Ys). range(M,N,[M|Ns]) :- M < N, M1 is M+1, range(M1,N,Ns). range(N,N,[N]). selectq(X,[X|Xs],Xs). selectq(X,[Y|Ys],[Y|Zs]) :- selectq(X,Ys,Zs). %Try %queens(4,P). % % The result P=[3,1,4,2] means the queens go like this: % ***************** % 4 * * * Q * * % ***************** % 3 * Q * * * * % ***************** % 2 * * * * Q * % ***************** % 1 * * Q * * * % ***************** % 1 2 3 4
queens(8,P).
ausführen
Seite
Quelltext
Versionen/Autoren
Konto registrieren
Anmelden
Navigation
Startseite
Letzte Änderungen
Alle Seiten
Einführungskurs
Hilfe
Dateien
Suche
Suchen
Werkzeuge
Links auf diese Seite
Spezialseiten