我正在试图找出一种方法来创建一个程序,它给出了给定有序对的任意两点之间的距离。
我想我可能有代码,但我需要有人检查并确保它是正确的。
oInput = ["9.5 7.5", "10.2 19.1", "9.7 10.2"]
inp = [(float(j[0]), float(j[1])) for j in [i.split() for i in oInput]]
min_distance = float('infinity')
min_pair = None
length = len(inp)
for i in xrange(length):
for j in xrange(i+1, length):
point1 = inp[i]
point2 = inp[j]
if math.hypot(point1[0] - point2[0], point1[1] - point2[0]) < min_distance:
min_pair = [point1, point2]
答案 0 :(得分:1)
首先,你在这里使用错误的索引:
math.hypot(point1[0] - point2[0], point1[1] - point2[0]) # current, wrong
math.hypot(point1[0] - point2[0], point1[1] - point2[1]) # right
其次,这个程序不是你所描述的,它会产生比给定min_distance
更接近的点对。