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.
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
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
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)
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
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
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
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...
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])
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);
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
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) : !
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
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
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
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
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
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
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
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,
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
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
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
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).
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
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],
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
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
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
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).
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.
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
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
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 \=
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
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,
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 =
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
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
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
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
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
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
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
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,
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
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.
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
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
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
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