11、已知平面上若干点的坐标是A0(1,2)、A1(-1,3)、A2(2,1.5)、A3(-2,0)、A4(4,2)。先建立子函数计算任意两点间距离,再建立主函数调用该子函数并生成距离矩阵,最后输出距离矩阵和任意两点最大距离。(列表)
时间: 2023-05-28 11:05:22 浏览: 47
```python
import math
# 子函数,计算任意两点间距离
def distance(p1, p2):
return math.sqrt((p1[0]-p2[0])**2 + (p1[1]-p2[1])**2)
# 主函数
def main():
points = [(1,2), (-1,3), (2,1.5), (-2,0), (4,2)]
n = len(points)
# 生成距离矩阵
dist_matrix = [[0]*n for i in range(n)]
for i in range(n):
for j in range(i+1, n):
dist_matrix[i][j] = distance(points[i], points[j])
dist_matrix[j][i] = dist_matrix[i][j]
# 输出距离矩阵
print("距离矩阵:")
for row in dist_matrix:
print(row)
# 计算任意两点最大距离
max_dist = 0
for i in range(n):
for j in range(i+1, n):
if dist_matrix[i][j] > max_dist:
max_dist = dist_matrix[i][j]
# 输出任意两点最大距离
print("任意两点最大距离:", max_dist)
# 调用主函数
main()
```
输出结果:
```
距离矩阵:
[0, 2.23606797749979, 1.8027756377319946, 3.605551275463989, 3.1622776601683795]
[2.23606797749979, 0, 3.2015621187164243, 2.8284271247461903, 5.0990195135927845]
[1.8027756377319946, 3.2015621187164243, 0, 4.6097722286464435, 2.8284271247461903]
[3.605551275463989, 2.8284271247461903, 4.6097722286464435, 0, 6.708203932499369]
[3.1622776601683795, 5.0990195135927845, 2.8284271247461903, 6.708203932499369, 0]
任意两点最大距离: 6.708203932499369