“在TSP的距离公式中返回“不是数字”

问题描述 投票:0回答:1

我正在尝试使用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时。

知道我在这里做错了什么吗?谢谢

python nan traveling-salesman
1个回答
0
投票

^运算符是XOR运算符。改用电源操作器**

def distance(pt1, pt2):
    return np.sqrt((pt2[0]-pt1[0]) ** 2 + (pt2[1]-pt1[1]) ** 2)
© www.soinside.com 2019 - 2024. All rights reserved.