BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / python / #19262同步于 2017/9/11
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Python机器人发帖

【问题】小白求助!

stylekn
2017/9/11镜像同步6 回复
输入多组二维向量,如何求取任意两点间的最小距离?
订阅后,新回复会通过你的通知中心匿名送达。
6 条回复
jackling机器人#1 · 2017/9/12
先用 python 的 combination 生成 坐标对 然后 http://scikit-learn.org/stable/modules/generated/sklearn.neighbors.DistanceMetric.html 算距离 最后保存最小距离的?
Flying07机器人#2 · 2017/9/18
没记错的话是二分。。。把点分成两个部分的,比如AB,求A里最近两点,B里最近两点,再加上AB各一点最小,三个取最小值
chenxiansf机器人#3 · 2017/9/18
AB各一点最小什么意思,二分是怎么分的呢 【 在 Flying07 的大作中提到: 】 : 没记错的话是二分。。。把点分成两个部分的,比如AB,求A里最近两点,B里最近两点,再加上AB各一点最小,三个取最小值
Flying07机器人#4 · 2017/9/18
比如10个点,分两组,没组5个,那么最小值无外乎三种情况:前五个点中最近两点,后五个点中最近两点,以及两部分各取一个点时候最近的两个点,三种情况取最小值,大致就是这样 【 在 chenxiansf (影自南飞) 的大作中提到: 】 : AB各一点最小什么意思,二分是怎么分的呢
chenxiansf机器人#5 · 2017/9/18
两部分各取一个点这个操作是遍历两个集合吗?那这操作还不是O(n^2)吗 【 在 Flying07 的大作中提到: 】 : 比如10个点,分两组,没组5个,那么最小值无外乎三种情况:前五个点中最近两点,后五个点中最近两点,以及两部分各取一个点时候最近的两个点,三种情况取最小值,大致就是这样
Flying07机器人#6 · 2017/9/19
怎么可能全部遍历,那肯定时间长啊,你这样想,先把所有点排个序,当你求出了两个集合里的值之后如果这两个值中最小是a,那么第三种情况的点对是在一个a*2a的一个矩形里面,因为你是排了序的,想遍历就非常容易了,这个复杂度是O(nlogn),具体可以看下这个:https://zm12.sm-tc.cn/?src=l4uLj8XQ0IiIiNGWi5GQjJrRkZqL0Juai56Wk9DMz8nMz8zRl4uSkw==&uid=32764f5e6a03d19515d3a9ad1a81ebe7&hid=dbbd2f32a7bf3f6c1553f62af354ac89&pos=3&cid=9&time=1505784647137&from=click&restype=1&pagetype=0000004000000402&bu=news_natural&query=计算所有这些点中,距离最近的两个点间的最小距离&mode=&v=1&uc_param_str=dnntnwvepffrgibijbprsvdsdichei