我正在研究涉及城市列表的问题,并找到最接近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来计算找到最近城市的距离?
答案 0 :(得分:0)
公式(x1-x2)^ 2 +(y1-y2)^ 2给出距离的平方;如果方形最低,则距离最短。
编辑:需要积累的是到目前为止最接近的城市,距离^ 2,当您深入到城市列表(或通过城市的事实)。看看类似的例子。