我正在尝试使用Python构建基本的TSP解决方案,并且在尝试计算每个城市等级的总距离时遇到了一个问题。创建城市并将其存储为随机生成的二维列表;内部列表分别包含x和y值,外部列表包含内部列表。我有一个成功的距离公式,其中包含两个内部列表,并用以下公式找到它们之间的距离:
def distance(pt1, pt2):
return np.sqrt((pt2[0]-pt1[0]) ^ 2 + (pt2[1]-pt1[1]) ^ 2)
在测试用例中一直返回正确的答案。但是,我还有一个函数可以接收一个列表(打算与外部列表一起使用),并使用上述函数作为辅助函数来计算所有点之间的总距离。该功能如下:
def distTotal(points):
total = 0
for i in range(0, numCities-1):
total += distance(points[i], points[i+1])
return total
其被调用的具体实例如下:
print(distTotal(cities))
其中“城市”是随机生成的二维列表。但是,在测试此功能时,每次都会返回“ nan”(“非数字”)。在调试中,似乎第一次尝试在distTotal函数中使用distance函数的时候是“ total”的值等于nan。
知道我在这里做错了什么吗?谢谢
答案 0 :(得分:0)
^
运算符是XOR
运算符。改用电力运营商**
:
def distance(pt1, pt2):
return np.sqrt((pt2[0]-pt1[0]) ** 2 + (pt2[1]-pt1[1]) ** 2)