Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用python从同一垂直线上的多个坐标中仅选择一个坐标的最短距离_Python_Algorithm_Python 3.x_Graph Algorithm_Shortest Path - Fatal编程技术网

使用python从同一垂直线上的多个坐标中仅选择一个坐标的最短距离

使用python从同一垂直线上的多个坐标中仅选择一个坐标的最短距离,python,algorithm,python-3.x,graph-algorithm,shortest-path,Python,Algorithm,Python 3.x,Graph Algorithm,Shortest Path,我有一个列表=坐标,其中我有XY平面上所有这些点的坐标 坐标列表中给出的点超过1500个。我必须找到XY平面中从最左边的点到最右边的点的最小距离,这样,如果两个或多个点位于同一条垂直线上,则只选择其中一个点作为路径,从而计算距离 坐标列表的示例如下: coordinates = [(-6, 0), (-5.82, 1.72), (-5.17, -0.27), (-4.28, 0.0), (-2.9, -0.74), (-2.9, -0.2), (-1.55, 0.08), (-1.37, -0.

我有一个
列表
=
坐标
,其中我有XY平面上所有这些点的坐标

坐标列表中给出的点超过1500个。我必须找到XY平面中从最左边的点到最右边的点的最小距离,这样,如果两个或多个点位于同一条垂直线上,则只选择其中一个点作为路径,从而计算距离

坐标列表的示例如下:

coordinates = [(-6, 0), (-5.82, 1.72), (-5.17, -0.27), (-4.28, 0.0), (-2.9, -0.74), (-2.9, -0.2), (-1.55, 0.08), (-1.37, -0.43), (4.8, -1.64), (4.92, -0.25), (5.05, -1.45), (5.36, -0.02), (6, 0)]
因此,在这种情况下,将不考虑点
(-2.9,-0.74)

如何在这种情况下使用Dijksra算法或任何其他最短路径拟合算法,但同时删除垂直线中不需要的点


我使用了
itertools
permutate
并找到所有可能的路径,然后是距离,然后是最小值,但它不适合大于1000的点,而且不可能忽略我提到的相同垂直线坐标。请在
python

中提供帮助。最短路径始终是这两点之间的一段。这太容易了。问题肯定还有很多,比如在每个x坐标上选择一个点。