【发布时间】:2015-11-05 00:21:50
【问题描述】:
我有一个包含 x,y 对的简单二维列表。我正在编写一个程序来找到它们之间距离最短的两组点。
“值”列表包含所有距离,我很确定它们是正确的距离。
我想打印出创建最小距离的两个点。打印出最小距离显然很容易,但是打印出两点给我带来了麻烦。
我需要跟踪哪些点集产生了哪些距离。
我认为我可能不得不重新编写这段代码并重新开始以完成我想要的。但是,有没有办法用我所拥有的来实现这个结果?如果没有,我该怎么做?如何跟踪正在使用的索引?
代码:
multiD = [[1,3],
[-1,-1],
[1,1],
[2,0.5],
[2,-1],
[3,3],
[4,2],
[4,-0.5]]
def distance(x1, y1, x2, y2):
distance = ( (((x2 - x1) * (x2 - x1)) + ((y2 - y1) * (y2 - y1))) ** 0.5)
return distance
values = []
for [x1,y1] in multiD:
for [x2,y2] in multiD:
if [x1,y1] != [x2,y2]:
diff = distance(x1,y1,x2,y2)
values.append(diff)
【问题讨论】: