已知列表中储存有10个随机的坐标点,想计算任意两个坐标点的距离并且找出最大值
import math
d = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
for i in range(10):
for j in range(10):
d[i]=math.sqrt((randomlist[i][0]-randomlist[j][0])**2+(randomlist[i][1]-randomlist[j][1])**2)
s = d[0]
m = 0
这样写只能计算和最后一个坐标点的距离,想问应该怎么改
import math,random
from itertools import combinations
randomlist = [(random.uniform(-10,10), random.uniform(-10,10)) for _ in range(10)]#生成10个随机坐标点
def dis(x,y):#定义一个计算距离的函数
return math.sqrt((x[0]-y[0]) **2+(x[1]-y[1])**2)
all_points=combinations(randomlist,2)#10个点坐标两两组合
all_dis=[dis(x,y) for x,y in all_points]#计算所有点之间距离并放入列表
print(max(all_dis),min(all_dis))#输出距离最大值和最小值
原题目是什么?
另外你学习python为啥要训练这种题目,是为了解决什么实际问题吗?只是好奇O(∩_∩)O哈哈~
思路:将10个坐标点两两之间的距离算出来,放入一个数组中,然后再对该数组进行冒泡排序,得出最大值