鱼C论坛

 找回密码
 立即注册
查看: 1684|回复: 3

两点距离之和

[复制链接]
发表于 2017-8-31 15:39:13 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x

一个方程def (places,locations):
如何实现求出places 里面给定的三点距离之和?如果locations = [("A",1,2),("B",5,6),("C" 4,4),("D",2,2)]; places = ["A","B","D"]
写了一部分,不知道对不对,后面的写不出来了....
def tourlength(tour,locations):
    location_index = []
    for i in range(len(tour)):
        for j in range(len(locations)):
            if tour[i] == locations[j][0]:
                location_index.append(locations[j])
        return location_index
# 然后想根据现有的列表,求两两距离,再加和
   
多谢!!
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2017-8-31 15:59:49 | 显示全部楼层
首先,你的问题描述得不是很清楚。
求任意两点之间的距离可以直接用公式((x1-x2)**2+(y1-y2)**2)**0.5
另外,你可以把你的数据源改写成字典的形式,这样对于程序的编写会简单很多。
例如:
locations = {'A':(1,2), 'B':(5,6), 'C':(4,4), 'D':(2,2)}
这样从places里面取的的数据,直接就可以在locations里面取到坐标了。

其次,你这样做的目的是什么? 你把你的目的讲清楚,我觉得应该有很好的解决办法。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-8-31 16:07:04 | 显示全部楼层
jerryxjr1220 发表于 2017-8-31 15:59
首先,你的问题描述得不是很清楚。
求任意两点之间的距离可以直接用公式((x1-x2)**2+(y1-y2)**2)**0.5
另 ...

前面一个括号里表明了有哪些点,可能是("A", "B") 也可能是("A","B","C")。这些点的坐标给在了后面的括号里。两个点的坐标公式我知道,但是不确定怎么样用loop 把把"A" 到"B" 和 "B" 到 "C" 之间的距离相加。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-8-31 17:29:35 | 显示全部楼层
frankzhang57 发表于 2017-8-31 16:07
前面一个括号里表明了有哪些点,可能是("A", "B") 也可能是("A","B","C")。这些点的坐标给在了后面的 ...

如果是要求任意2点的距离,可以利用排列组合的方法,列出所有的两两组合,排列组合当然要用itertools的combinations库啦。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-12-23 13:31

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表