Ich bin ganz neu in Prolog und ich versuche, ein PrädikatAbstände zwischen Vektoren in einer Liste im Prolog enthalten
distance_all(List, List_of_distances).
, dessen Eingang eine Liste der Liste cointaining Vektor coohordinates zu schreiben:
INPUT = [1,2,3], [2,3,4], [1,7,3], [1,6,3]]
und geben Sie eine Liste aus, die den gesamten Abstand zwischen den einzelnen Punkten enthält andere.
Ich habe es so gemacht, aber (tut mir leid den schlechten Pseudo-Code). Ich weiß wirklich nicht, wie man in Prolog damit umgeht!
Abstand (Punkt1, point2) = D_1-2
Abstand (Punkt1, point3) = D_1-3
bis Distanz (point1, last_point) = D_1-last
Abstand (point2, point3) = D_2-3
Abstand (point2, Point4) = D_2-4
d istance (point2, last_point) = D_2 letzte am so weiter ...
so dass der Ausgang ist wie
OUTPUT = [D_1-2, D_1-3, ....., D_1-zuletzt, D_2-3, D_2-4, ..... D_2-zuletzt ...].
Ich habe bereits implementiert ein Prädikat
Abstand (Vektor1, Vector2, D).
wobei D der euklidische Abstand zwischen Vektor1 und Vector2 (in 2D, 3D oder was auch immer)
Eine andere Frage
Was passiert, wenn ich die ursprünglichen Vektoren erinnern wollen, dass der Mindestabstand entstanden?
zum Beispiel
- distance_all ([[1,1], [1,2], [6,3], [8,2]], Lo). Lo = [1,0, 5,385164807134504, 7,0710678118654755, 5,0990195135927845, 7,0, 2,23606797749979]
der Mindestabstand beträgt 1,0 ... Aber zwischen Wich Vektoren? A B