Tag: clpfd
CLP(FD), das steht für Constraint Logic Programming over Finite Domains, implementiert deklarative integer-Arithmetik in Prolog-Systemen. Es ist ein reiner und allgemeiner Ersatz der unteren Ebene arithmetische Prädikate und können Sie effizient lösen kombinatorischer Probleme, wie die Planung, Terminierung und Zuordnung der Aufgaben.
5
Antworten
Hab ich ein problem mit Listen. Was ich tun müssen, ist split eine Liste [1,-2,3,-4], in zwei Listen [1,3] und [-2,-4]. Mein code sieht wie folgt aus: lists(,_,_). lists([X|Xs],Y,Z):- lists(Xs,Y,Z), X>0 -> append([X],Y,Y) ; append([X],Z,Z). und ich
4
Antworten
Ich bin auf der Suche nach den Minimalwert einer Liste (als Lernerfahrung, also ohne min). Mein Ansatz ist der folgende: minimo([X], X). minimo([X,Y|Tail], N):- (X > Y, minimo([Y,Tail], Y)); (X <= Y, minimo([X,Tail], X)). Dies gibt mir
2
Antworten
Ich bin neu in prolog und ich mache einige übungen für die Praxis. Also ich versuche, die Summe der gegebenen zahlen in eine Liste. Ich versuche zu verwenden: my_last(X, [X]). my_last(X, [_|L]) :- my_last(X, L). (aus hier)
9
Antworten
Des N-Damen-Problem: Dieses problem besagt, dass, gegeben ein Schachbrett der Größe N durch N ist, finden die verschiedenen Permutationen, in der N Damen auf dem Brett platziert werden, ohne dass ein bedrohen sich gegenseitig. Meine Frage ist:
4
Antworten
Ich bin Anfänger in Prolog-Programmierung. Ich schrieb dieses Programm, um die Berechnung der Länge einer Liste. Warum ist unten das Programm falsch? length(0, ). length(L+l, H|T) :- length(L, T). Schrieb ich unter Programm und es funktioniert einwandfrei.
1
Antworten
Wie konvertiert float zu integer in prolog? Habe ich versucht: ?- integer(truncate(sqrt(9))). false. ?- integer(round(sqrt(9))). false. InformationsquelleAutor Martynas | 2010-12-04
5
Antworten
Machte ich ein Prolog-Prädikat posAt(List1,P,List2), die testet, ob das element an position P von List1 und List2 gleich: posAt([X|Z], 1, [Y|W]) :- X = Y. posAt([Z|X], K, [W|Y]) :- K > 1, Kr is K - 1,
3
Antworten
Ich Schreibe ein kleines Programm, welches zählt, wie viele Elemente in einer Liste sind keine Nummern. Hier ist mein code: not_number(,0). not_number([X|T],R):- not(number(X)), R1 is R+1, not_number(T,R1). not_number([_|Tail],Result):- not_number(Tail,Result). Wenn ich die Ausführung von code wie dieser
7
Antworten
Von Logik-Programmierung, ich meine die sub-Paradigma der deklarativen Programmiersprachen. Verwechseln Sie diese Frage mit "Welche Probleme kann Sie lösen mit wenn-dann-sonst?" Einer Sprache wie Prolog ist sehr spannend, und es lohnt sich zu lernen, für den Willen
8
Antworten
Ich würde gerne ein Prolog-Prädikat ersetzen kann, dass ein element in eine Liste an einem bestimmten index. Beispiel: % replace(+List,+Index,+Value,-NewList). ?- L=[a,b,c,d], replace(L,1,z,L2). L2 = [a,z,c,d] Ich weiß nicht, wie dies zu tun. Vielen Dank für Ihre
8
Antworten
Des N-Damen-Problem: Dieses problem besagt, dass, gegeben ein Schachbrett der Größe N durch N ist, finden die verschiedenen Permutationen, in der N Damen auf dem Brett platziert werden, ohne dass ein bedrohen sich gegenseitig. Meine Frage ist:
6
Antworten
Gibt es einige Besondere Operatoren in Prolog, einer von Ihnen ist "ist", aber, vor kurzem stieß ich auf die =:= Operatoren, und ich habe keine Ahnung, wie es funktioniert. Kann mir jemand erklären, was der Betreiber macht,
14
Antworten
Edit: dieses Rätsel ist auch bekannt als "Einstein' s Riddle" Den Wer besitzt das Zebra (Sie können testen Sie die online-version hier) ist ein Beispiel für eine klassische Reihe von Rätseln, und ich Wette, dass die meisten