【问题标题】:Question surrounding python and euclidean distance calculation围绕python和欧几里得距离计算的问题
【发布时间】:2020-09-13 19:54:08
【问题描述】:

我正在学习 python,我想知道是否有人可以帮助我朝着正确的方向前进。 我必须编写一些 python 代码,在 2D 平面上随机生成 N(N 是用户在提示时指定的数量)点,我相信我已经做到了:

from random import randrange
# Example points in 2-dimensional space...
i = int(input('How many coordinates would you like to generate? \n'))

coords_list = [(randrange(100), randrange(100)) for _ in range(i)]

print(coords_list)

这将创建一个坐标元组列表:[(1,2)、(3,4)] 等。

然后问题是计算这些点之间的距离矩阵,但我不能使用 numpy 或其他类似的东西,我必须使用距离函数,我遇到了一个欧几里得方程,但我不确定如何这将帮助我建立矩阵。

如果有人能给我一些提示或提示,我将非常感激

非常感谢, 杰克

【问题讨论】:

  • 查看我的代码here
  • 你了解矩阵应该是什么样子吗?即告诉你矩阵的每个元素的值应该是什么的规则?你知道如何计算两点之间的距离吗?你了解如何遍历所有点对吗?
  • 问题要求我随机生成N个点在二维平面上的坐标(N值应由用户在程序运行时提供),然后计算这些点之间的距离矩阵点(应使用距离)欧几里得;距离计算应由程序中定义的函数进行)将针对计算的距离矩阵解决旅行商问题并显示找到的最佳路线。嗯,我想我可以自学使用 euclid 计算一对值的距离,然后迭代 - 谢谢!

标签: python matrix coordinates distance


【解决方案1】:

根据我对您的问题的理解,您需要创建 n 个坐标,然后在平面上的所有点上创建一个距离矩阵。

您可以使用 scipy 是一个基于 Python 的数学、科学和工程开源软件生态系统。 - Scipy

此功能 - scipy.spatial.distance.euclidean 将帮助您计算平面中两点之间的距离。

而且,您可以在其上创建一个循环以将其存储在矩阵中以创建距离矩阵。

如果我在您的问题中遗漏了一些要点,请告诉我。

谢谢

【讨论】:

  • 我希望能够使用 scipy 或类似的东西,但问题特别指出“距离计算应该由程序中定义的函数执行”,在我看来我应该拥有我的自己的函数来执行计算
  • 你认为在这种情况下矩阵应该是什么样子? (1,2) (3,1)。我知道 (1,2) 到 (1,2) 将是 0。我只是在努力想象这个矩阵应该是什么样子,比如列和行
  • 如果我执行 '''print(coords_list) 我可以看到随机生成的坐标列表,我得到 [(6, 40), (71, 49), (24, 19), ( 13, 72), (66, 77)] 和如果我执行 print(coords_list[0] 我得到 (6, 40) 如果将 x 和 y 值组合在一起,我将如何迭代并执行欧几里得算法坐标?
猜你喜欢
  • 1970-01-01
  • 2019-06-11
  • 2019-03-08
  • 2020-11-29
  • 2018-02-14
  • 2013-04-07
  • 2021-01-31
  • 2015-09-23
  • 1970-01-01
相关资源
最近更新 更多