📅  最后修改于: 2023-12-03 15:12:39.644000             🧑  作者: Mango
这是一道来自GATE-CS-2000的编程题。题目如下:
在交点坐标平面上给定n个交点(x,y),其中x和y均为整数。您的任务是计算所有交点平面上的点对之间的距离。
此题可通过计算任意两点之间的距离完成功能。考虑到n个点的次数组合为n*(n-1)/2,因此需要使用两个循环来对所有点进行遍历,并计算它们之间的距离。需要注意,由于点的个数可能较大,因此在计算距离时应使用sqrt函数来避免数值溢出。
具体实现见代码部分。
import math
# 定义求距离的函数
def distance(x1, y1, x2, y2):
return math.sqrt((x2 - x1)**2 + (y2 - y1)**2)
# 定义主函数
def main(coordinates):
n = len(coordinates)
for i in range(n):
for j in range(i+1, n):
print("Distance between ({},{}) and ({},{}) is: {:.2f}"
.format(coordinates[i][0], coordinates[i][1], coordinates[j][0], coordinates[j][1], distance(coordinates[i][0], coordinates[i][1], coordinates[j][0], coordinates[j][1])))
# 测试用例
coordinates = [(1,2),(3,4),(5,6)]
main(coordinates)
输出:
Distance between (1,2) and (3,4) is: 2.83
Distance between (1,2) and (5,6) is: 5.66
Distance between (3,4) and (5,6) is: 2.83