Tag: prolog

Prolog ist die am häufigsten verwendete Logik-Programmiersprache. Es unterstützt nicht-deterministische Programmierung durch chronologisches backtracking und pattern-matching durch die Einheit.

Lösen Kannibalen/Missionare mit der Breite-zuerst-Suche (BFS) in Prolog?

Anzahl der Antworten 5 Antworten
Arbeite ich an der Lösung der klassischen Missionare(M) und Kannibalen(C) problem, den start-Zustand ist 3 M und 3 C auf der linken bank und der Ziel-Zustand ist 3M, 3C auf der rechten bank. Ich habe komplett die

zählen Sie die Anzahl eines bestimmten Elements in eine prolog-Liste

Anzahl der Antworten 3 Antworten
Ich versuche zu zählen, wie oft ein element in einer Liste, so weit ich kam mit rate(X,[H|T],N):- X == H, N is N+1, rate(X,T,N). rate(X,[_|T],N) :- rate(X,T,N). rate(_,,N) :- N is 0. Habe ich behandelt, wenn eine

Wie gebe ich eine Liste in Prolog?

Anzahl der Antworten 3 Antworten
Sagen wir, ich habe diese Fakten: parent(bob, sam). %bob is sam's parent parent(sara, sam). %sara is sam's parent Wollte ich herausfinden, wer waren sam's Eltern und kehren Sie in einer Liste und als solche verwendet: list_parents(P, L)

Prolog-Liste durch Komma getrennter string ist

Anzahl der Antworten 6 Antworten
Habe ich eine Liste, wie [apple, orange]und ich möchte es in einen string konvertieren wie "apple,orange" im Prolog. Haben Sie eine Idee? Erklären Sie bitte, warum wollen Sie das tun? Wollen Sie pretty-print die Liste? Wollen Sie

Wie zähle ich die Anzahl der Elemente in einer Liste?

Anzahl der Antworten 3 Antworten
Schreiben brauche ich eine kleine Prolog-Programm zum zählen der Anzahl der vorkommen jedes Elements in einer Liste. numberOfRepetition(input, result) Beispiel: numberOfRepetition([a,b,a,d,c,a,b], X) können zufrieden sein mit X=[a/3,b/2,d/1,c/1] weil a tritt drei mal b tritt 2 mal und

Schnittmenge und Vereinigung von 2 Listen

Anzahl der Antworten 7 Antworten
ich ab, bis learning prolog (ich verwende SWI-prolog) und ich habe eine einfache übung, in der ich 2 Listen und ich will berechnen Sie die Schnittmenge und Vereinigung. Hier ist mein code, der funktioniert ziemlich gut, aber

Programm zum generieren von fibonacci-Reihe in GNU Prolog gibt eine Instanziierung Fehler

Anzahl der Antworten 4 Antworten
Dies ist mein code:- fib(0,0). fib(1,1). fib(F,N) :- N>1, N1 is N-1, N2 is N-2, F is F1+F2, fib(F1,N1), fib(F2,N2), write(F," ,"). Consulting in GNU Prolog, bin ich immer: | ?- consult('C:/GNU-Prolog/bin/fib.pl'). compiling C:/GNU-Prolog/bin/fib.pl for byte code...

Prolog: Das Entfernen Von Duplikaten

Anzahl der Antworten 2 Antworten
Ich versuche, entfernen Sie doppelte Einträge aus einer Liste in prolog. So eine Liste [a,b,a,c,b,a] return [a,b,c]. Ich kann keine eingebauten Funktionen. Suchte ich hier und fand diesen code. member(X,[X|_]) :- !. member(X,[_|T]) :- member(X,T). set(,). set([H|T],[H|Out])

Prolog Oder (; - Regel) Zurück Mehrere Ergebnis

Anzahl der Antworten 2 Antworten
ich haben, definieren Sie eine Regel mit or-operator, sondern es wieder mehrere true oder false. isloanaccept(Name,Guarantor,LoanType,LoanAmount,LoanTenure) :- customer(Name,bank(_),customertype(_), citizen(Ci),age(Age),credit(C), income(I),property(_),bankemployee(_)), Ci == 'malaysian', Age >= 18, C > 500, I > (LoanAmount /LoanTenure) /12, isguarantor(Guarantor,Name), ispersonalloan(LoanType,LoanAmount,LoanTenure); ishouseloan(LoanType,LoanAmount,LoanTenure);

Prolog entfernen mehrerer Elemente aus einer Liste

Anzahl der Antworten 5 Antworten
Ich wissen, wie Sie zum entfernen eines Elements aus einer Liste, aber gibt es eine Möglichkeit zu entfernen, die mehr als ein Element aus einer Liste? Zum Beispiel, deletelist([a,b,c,a,b],[a,c],X) X = [b,b] % delete a and c

Wie Kann ich die Simulation einer while-Schleife in Prolog mit unveränderlichen Bedingungen?

Anzahl der Antworten 4 Antworten
Also im Grunde bin ich versucht zu simulieren, C-code in Prolog. Es ist leicht zu simulieren while-Schleife in Prolog ist Hier der Fall: C-code: int a = 1; while(N) { N--; a++; } Prolog-code: prolog_while(0) : !

Prolog - Palindrom Funktor

Anzahl der Antworten 5 Antworten
Ich versuche zu schreiben, ein Prädikat palindrome/1 im Prolog, dass ist wahr, wenn und nur wenn seine Liste Eingabe besteht aus einem Palindrom-Liste. Beispiel: ?- palindrome([1,2,3,4,5,4,3,2,1]). wahr ist. Irgendwelche Ideen oder Lösungen? Sie erkennen, können Sie Sie

Prolog, wie drucken Sie die ersten 3 Elemente in einer Liste

Anzahl der Antworten 2 Antworten
Wie kann ich drucken Sie die ersten 3 Elemente in einer Liste. Habe ich eine print-Methode print(). print([X]) :- !, write(X). print([X|T]) :- write(X), write(', '), print(T), nl. Ich dachte, ich hinzufügen, eine Bedingung zu überprüfen, n

Zusammengesetzte Boolesche Ausdrücke in Prolog

Anzahl der Antworten 3 Antworten
Im Prolog, wie setzen Sie zusammengesetzte logische Prädikate wie (A und B) oder (C und D)? Dies mag wie eine einfache Frage, aber viele zugängliche online-tutorials sind nicht detailliert genug auf Boolesche Ausdrücke. Ich nehme an, Sie

Zufällige Elemente in Prolog

Anzahl der Antworten 2 Antworten
Ich weiß, ich kann tun X is random(10). um eine zufällige Zahl von 0 bis 10, aber gibt es einen ähnlichen Befehl aus, um eine zufällig passende Artikel? InformationsquelleAutor Pieter | 2010-02-14

Prolog: wie konvertieren von string zu integer?

Anzahl der Antworten 4 Antworten
Also wie der Titel sagt - wie wollen Sie konvertieren einen string in einen integer? die Idee ist, so etwas wie dieses: convert(String,Integer). examples: convert('1',1). convert('33',33). Ich bin mit swi prolog mögliche Duplikate von Parsen von zahlen

Wie für das erstellen von globalen Variablen in prolog

Anzahl der Antworten 3 Antworten
Ich habe eine Liste, die ich erstellen Sie wie folgt: tab([(top,left),(top,middle),(top,right),(center,left),(center,middle), (center,right),(bottom,left),(bottom,middle),(bottom,right)]). Ich möchte erstellen Sie eine Globale variable AllPosition eine Registerkarte. Also habe ich Folgendes gemacht: tab(AllPos). Ist das richtig? Dann habe ich Folgen problem: Ich

"dynamic" - Prädikat in prolog

Anzahl der Antworten 1 Antworten
Wenn ich das machen will, in der Regel dynamisch, so dass ich verwenden können, geltend machen, nachdem die Datenbank-Datei wurde geladen, wie Mach ich das? Ich bin mit XSB Prolog im moment, die Datei ist so etwas

So definieren Sie ein Prädikat in prolog

Anzahl der Antworten 2 Antworten
Ich bin neu in Prolog und ich haben bisher gelernt, wie definieren Sie ein Prädikat in einer Datei, und führen Sie den interpreter zu verwenden. Aber ich würde gerne wissen, ob es eine Möglichkeit gibt zu definieren,

Prolog, wie um zu zeigen, multiple output write()

Anzahl der Antworten 3 Antworten
go :- match(Mn,Fn), write('--Matching Result--'), nl, write(Mn), write(' match with '), write(Fn), match(Mn1,Fn1). person(may,female,25,blue). person(rose,female,20,blue). person(hock,male,30,blue). person(ali,male,24,blue). match(Mn,Fn):-person(Fn,'female',Fage,Fatt), person(Mn,'male',Mage,Matt), Mage>=Fage, Fatt=Matt. Hallo,das ist mein code...es ist aber nur die 1 Ausgabe...aber es gibt 3 paar passenden im

Prolog - generieren von zahlen passend gegeben Sortiment

Anzahl der Antworten 3 Antworten
Ich würde gerne Prädikate wie: range(X,0,5) range(X,4,200) range(X,-1000000,1000000) dom_range(X,-1000000,1000000) Bedeutung : range(X,0,5) :- member(X,[0,1,2,3,4,5]). range(X,4,200) :- member(X,[4,5,6...198,199,200]). range(X,-1000000,1000000) :- member(X,[-1000000,...,1000000]). dom_range(X,-1000000,1000000) :- domain(X, [-1000000,...,1000000]). Wie es code in Prolog schön (wobei die Leistung der Lösung berücksichtigt die

power-Funktion in prolog

Anzahl der Antworten 3 Antworten
Was ist Los mit meinem power-Funktion? pow(_,0,1). pow(X,Y,Z) :- pow(X,Y-1,X*Z). ?- pow(2,3,Z). ERROR: Out of global stack InformationsquelleAutor TheOne | 2009-09-19

Cut und Fail in Prolog

Anzahl der Antworten 4 Antworten
Betrachten Sie den folgenden code: a(X) :- b(X),!,c(X),fail. a(X) :- d(X). b(1). b(4). c(1). c(3). d(4). Die Abfrage a(X). produziert 1 ?- a(X). false. 2 ?- aber mit diesem code a(X) :- b(X),!,c(X). a(X) :- d(X). b(1).

Wie zu transponieren einer matrix in prolog

Anzahl der Antworten 7 Antworten
Wie kann ich transponieren einer Liste wie [[1,2,3][4,5,6][6,7,8]] zu [[1,4,6],[2,7,8],[3,6,9]]? Es darstellen: ich möchte flip die matrix um 90 Grad nach Links. Wie kann ich das tun? InformationsquelleAutor cody | 2010-11-25

Löschen aller vorkommen eines Elements aus einer Liste

Anzahl der Antworten 4 Antworten
Beim schreiben einer Prozedur, die einen Wert erhalten und eine Liste, es löscht alle auftreten von Wert in die Liste ein schrieb: delMember(X, , ) :- !. delMember(X, [X|Xs], Y) :- !, delMember(X, Xs, Y). delMember(X, [T|Xs],

Prolog-element in der Listen-Ersatz

Anzahl der Antworten 5 Antworten
Hallo, ich Frage mich, wenn Sie mir helfen könnten, mit diesem Von der Programmierung in Prolog: schreiben Sie Prolog-Skript für den Ersatz jedes element in den Listen durch ein anderes element. Zum Beispiel: replace( 3, a,[1,2,3,4,3,5], [1,2,a,4,a,5])=true

Zwei-Klausel-definition zu finden, die maximale Anzahl auf einer Liste

Anzahl der Antworten 8 Antworten
Wie würde ich schreiben, eine zwei-Klausel rekursive definition zu finden, die den maximalen Wert in einer Liste. Bisher habe ich dies geschrieben: max(L,M):- max([H|T],M):- max(T,H,M). max(,M,M). max([H|T],Y,M):- H =< Y, max(T,Y,M). max([H|T],Y,M):- H > Y, max(T,H,M). Dieser

wenn sonst wenn else-Klausel in prolog, ähnlich zu C/C++

Anzahl der Antworten 5 Antworten
In der c-Sprache ich habe so etwas wie : if(cond1) {} else if(cond2) {} else {} wie ist das möglich in Prolog? InformationsquelleAutor Vijay | 2012-04-12

So löschen Sie das Letzte element aus einer Liste in Prolog?

Anzahl der Antworten 4 Antworten
Ich bin in der folgenden situation: ich habe eine Liste und würde ich löschen, es wird nur das Letzte element. Habe ich die Umsetzung der folgenden Regel (nicht funktionieren): deleteLastElement([Only],WithoutLast) :- !, delete([Only],Only,WithoutLast). deleteLastElement([_|Tail],WithoutLast) :- !, deleteLastElement(Tail,WithoutLast).

"Syntax Fehler: Operator erwartet" in Prolog

Anzahl der Antworten 1 Antworten
Habe ich diese graph-Struktur für die Daten fließen in Prolog. Ich habe eine Kante von Knoten 1 zu 2, 1 zu 3, etc. Variable x definiert ist, die in Knoten 1, variable t in Knoten 4, etc.

konvertieren von float zu integer in prolog

Anzahl der Antworten 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

Finden der max in einer Liste - Prolog

Anzahl der Antworten 7 Antworten
Ich wurde nur eingeführt, um Prolog und bin versucht zu schreiben, ein Prädikat, findet die Max-Wertes einer Liste von ganzen zahlen. Ich muss eins schreiben, der vergleicht von Anfang an und die andere, vergleicht am Ende. Bisher

Prolog-Programm zu finden, Gleichheit zweier Listen in beliebiger Reihenfolge

Anzahl der Antworten 9 Antworten
Ich wollte schreiben Sie ein Prolog-Programm zu finden, Gleichheit von zwei Listen, in denen die Reihenfolge der Elemente egal. Also schrieb ich das folgende: del(_, , ) . del(X, [X|T], T). del(X, [H|T], [H|T1]) :- X \=

bareword found where operator erwartet

Anzahl der Antworten 1 Antworten
Ich bin neu in perl und ich bin fiddiling herum. Ich fand diesen code online. Hier ist das code-snippet: 82 process_input(q,). 83 process_input(n,Task) :- toptask(Task), set_new_threshold. 84 process_input(s,Task) :- suggest_task(T), 85 apply(addtoagenda,T),toptask(Task). 86 process_input(x,Task) :- print('not yet

Definieren von Listen in prolog-Skripts

Anzahl der Antworten 4 Antworten
Ich bin neu in der prolog-Programmierung und haben gesagt, in ein tutorial zu definieren, eine Liste von Strukturen (in einem script), so dass ich Abfragen kann, es wie eine Datenbank. Allerdings finde ich es unmöglich zu definieren,

Count die Anzahl der vorkommen einer Zahl in einer Liste

Anzahl der Antworten 3 Antworten
Ich Schreibe ein Programm in prolog, zählt die Anzahl der vorkommen einer Zahl in einer Liste count(,X,0). count([X|T],X,Y):- count(T,X,Z), Y is 1+Z. count([_|T],X,Z):- count(T,X,Z). - und das ist die Ausgabe ?- count([2,23,3,45,23,44,-20],X,Y). X = 2, Y =

Definieren von Graphen in Prolog: Kante und Pfad, zu finden, wenn es einen Pfad zwischen zwei Knoten

Anzahl der Antworten 4 Antworten
Ich bin sehr neu in Prolog. Ich definierte in graph.pl den folgenden Graphen: Und hier ist mein Prolog-code: edge(a,e). edge(e,d). edge(d,c). edge(c,b). edge(b,a). edge(d,a). edge(e,c). edge(f,b). path(X,X). path(X,Y):- edge(X,Z) ; path(Z,Y). Ich verstehe es so: gibt es

Prolog ist vs = mit Listen

Anzahl der Antworten 1 Antworten
Warum dies nicht L is [1,2,3,4], und das funktioniert: L = [1,2,3]? Aber L is 1, und L = 1 beide die gleiche Arbeit. InformationsquelleAutor TheOne | 2009-10-06

Erster Einsatz von SWI-Prolog

Anzahl der Antworten 3 Antworten
Ich bin ganz neu in Prolog. Ich versuche einfach nur, um eine Ausgabe von Prolog auf Windows Vista. Habe ich heruntergeladen und installiert Prolog 5.1; ich entschied mich für die .pro-Datei-Erweiterung beim installieren (nicht zu verwechseln mit

Implementierung von Prolog in C oder C++

Anzahl der Antworten 4 Antworten
Ich Frage mich, wie würde Prolog-Implementierung in C oder C++ Aussehen. Ich bin hauptsächlich daran interessiert, die Gebäude als eine C-oder C++ - Bibliothek, obwohl die Dolmetscher-app würde es auch tun. Ich bin interessiert in Lektüre über

Summe der Elemente in der Liste in Prolog

Anzahl der Antworten 5 Antworten
list_sum(, 0). list_sum([Head | Tail], TotalSum) :- list_sum(Tail, Sum1), Total = Head + Sum1. Dieser code gibt true. Wenn ich ersetzen Total = Head + Sum1 mit Total is Head + Sum1, dann wird es wieder den

Prolog, finden mindestens in einer Liste

Anzahl der Antworten 11 Antworten
kurz: Wie finden Sie min Wert in einer Liste? (vielen Dank für die Beratung kaarel) lange Geschichte: Habe ich einen gewichteten Graphen in Amzis prolog und 2 Knoten, ich bin in der Lage, zum abrufen einer Liste

Learn Prolog Now! übung-Lösungen

Anzahl der Antworten 3 Antworten
Weiß jemand, wo ich finden kann, Lösungen zu den übungen und Praktika zu Learn Prolog Now? Ich begann zu arbeiten und würde, um zu überprüfen, die Antworten, die ich mir ausdenken. InformationsquelleAutor Timothy | 2010-05-31

Einfaches prolog-Programm. Immer Fehler: >/2: Argumente werden nicht ausreichend instanziiert

Anzahl der Antworten 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,

Wie Sie anfügen eines Elements an eine Liste in Prolog?

Anzahl der Antworten 6 Antworten
Wenn ich eine Liste in Prolog ist, wie X = [1, 2, 3, 4], wie füge ich das element 5 an das Ende der Liste zu haben X = [1, 2, 3, 4, 5]? Die append-Funktion benötigt

Nicht gleich und nicht vereinen Prolog

Anzahl der Antworten 1 Antworten
Was ist der Unterschied zwischen A \= B not(A==B) in Prolog? Fand ich diese http://www.learnprolognow.org/lpnpage.php?pagetype=html&pageid=lpn-htmlse5 und diese wiki-Seite http://en.wikibooks.org/wiki/Prolog/Built-in_predicates aber es hat mir nicht helfen da es keine Klärung der Differenz, kurz noch Bedeutung für \=. Dank.

Prolog-Typ-überprüfung

Anzahl der Antworten 5 Antworten
Gibt es eine Möglichkeit, um zu bestimmen, den Typ eines Elements in einer Liste in Prolog? Ich weiß, dass Variablen nicht explizit eingegeben Prolog, aber ich brauche, um zu überprüfen, ob ein element eine Zahl ist, die

Verkettung von Listen in Prolog

Anzahl der Antworten 3 Antworten
Kann jemand helfen, um herauszufinden, Fehler in diesen Regeln? concat(, List, List). concat([Head|, List, [Head|List]). concat([Head|Tail], List, Concat) :- concat(Tail, List, C), concat(Head, C, Concat). Versuchen, verketten 2 Listen fehl: | ?- concat([1,2], [4,7,0], What). no InformationsquelleAutor

Wie zum ausführen von SWI-Prolog von der Kommandozeile aus?

Anzahl der Antworten 2 Antworten
Gibt es eine Möglichkeit, einfach erstellen Sie ein prolog-Skript namens hello.pl wie diese: #!/usr/local/bin/swipl -q -s -t main main:- write('Hello World\n'). Und führen Sie es aus dem terminal so? $ hello.pl Hello World $ Wenn ich es

Einsteins Rätsel Prolog

Anzahl der Antworten 3 Antworten
Ich brauche etwas Hilfe mit einem prolog Hausaufgaben für meine AI-Klasse. Die Frage ist, zu schreiben prolog-code für einstein ' s puzzle. Ich weiß, wie ich schreiben Sie es auf meine eigene, aber es gibt einige Einschränkungen