计算所有 customer 之间的两两距离,距离计算使用欧氏距离公式:$d_{12} =\sqrt{(x_2 - x_1)^² + (y_2- y_1)^²}$,并存储在一个距离array(矩阵)中
时间: 2024-10-29 16:14:18 浏览: 12
在Python中,如果你有一个`customers`列表,其中每个元素都是一个包含`(x, y)`坐标的字典或者元组,你可以通过遍历所有可能的顾客对来计算他们之间的欧氏距离,并将结果存储在一个二维数组(矩阵)里。这里是一个简单的示例:
```python
import math
# 假设 customers 是这样的
customers = [
{"name": "A", "coordinates": (1, 2)},
{"name": "B", "coordinates": (4, 6)},
{"name": "C", "coordinates": (7, 8)},
# 更多的顾客...
]
# 初始化一个空的距离矩阵
distance_matrix = [[0] * len(customers) for _ in range(len(customers))]
for i in range(len(customers)):
for j in range(i+1, len(customers)): # 从i+1开始避免重复
x1, y1 = customers[i]["coordinates"]
x2, y2 = customers[j]["coordinates"]
distance = math.sqrt((x2 - x1)**2 + (y2 - y1)**2)
distance_matrix[i][j] = distance
distance_matrix[j][i] = distance # 矩阵是对称的,所以需要两边都存
# 结果矩阵 distance_matrix 就包含了所有 customer 之间的两两距离
```
阅读全文