找到两个城市之间的距离

时间:2013-02-09 23:54:25

标签: prolog

我正在研究涉及城市列表的问题,并找到最接近Prolog指定城市的城市。例如,如果我想从这个数据集中找到距离西雅图最近的城市

city(5,3, seattle).
city(22,17,nashville).
city(4,7, portland).
city(21,18, memphis).
city(1,11, sacramento).

我有一个谓词/ 2定义距离

calc(C1,C2,D) :-
   city(V1,H1,C1),
   city(V2,H2,C2),
   D is ((V1-V2)^2+(H1-H2)^2).

我如何使用findall / 3来计算找到最近城市的距离?

1 个答案:

答案 0 :(得分:0)

公式(x1-x2)^ 2 +(y1-y2)^ 2给出距离的平方;如果方形最低,则距离最短。

编辑:需要积累的是到目前为止最接近的城市,距离^ 2,当您深入到城市列表(或通过城市的事实)。看看类似的例子。