社区
C++ 语言
帖子详情
找出一个距离给定点最近的点
heyyg
2015-11-23 01:45:32
问题描述如下:给定平面上的N个点,再给出一点P,在N个点中找出与P距离最近的点。可对给定的N个点进行预处理,建立相应的数据结构,能否找到一个不用遍历所有N个点的算法?
...全文
2017
8
打赏
收藏
找出一个距离给定点最近的点
问题描述如下:给定平面上的N个点,再给出一点P,在N个点中找出与P距离最近的点。可对给定的N个点进行预处理,建立相应的数据结构,能否找到一个不用遍历所有N个点的算法?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
heyyg
2015-12-04
打赏
举报
回复
目前是先将空间范围划分为网格,对每个网格建立索引,记录每个网格内是否有点,如果没点则记录周围最近的有点的格子。 然后对给定点判断落在哪个格子里,然后就知道找周边哪些格子进行计算了。
heyyg
2015-11-24
打赏
举报
回复
因为是二维的 d = sqrt( (x-x1)*(x-x1) + (y-y1)* (y-y1) ), 对X Y排序 不能解决距离也有序问题。 用四叉数好像可以,将问题简化为空间问题。只需要考虑邻近的4个区域内的点即可!
lm_whales
2015-11-23
打赏
举报
回复
不用排序,只要求出最大最小坐标,就可以了
lm_whales
2015-11-23
打赏
举报
回复
如果是做了x坐标和y坐标排序的预处理,应该可以的
赵4老师
2015-11-23
打赏
举报
回复
搜“四叉树”?
heyyg
2015-11-23
打赏
举报
回复
刚看了 编程之美中的 寻找最近点对,貌似也借鉴不上!
heyyg
2015-11-23
打赏
举报
回复
P的位置是任意的
paschen
版主
2015-11-23
打赏
举报
回复
如果P点的位置是任意的,感觉预处理那N个点也没用
查找道路上
距离
指
定
点
最近
的
点
/ 求某一
点
到路网上的
最近
点
坐标/ shapely nearest point
个人代码写的极烂,仅供参考,并非常欢迎大家给出修改意见~ 更欢迎大家给出更简单的方法~ 目标:给定某一
点
A的坐标,求其到给定路网上的
最近
点
的坐标 主要思路:读取路网shp文件,先根据给
定
点
的坐标求处其一定范围(如50米)的buffer区域(可以缩小查找范围),求出在该缓冲区内的道路,再
找出
指
定
点
到这些道路中
最近
的
点
是哪
一个
。 主要用到的库: shapely:文档——https://shapely.readthedocs.io/en/stable/index.html geopandas:文档——https:
查找
距离
点
最近
的坐标
接下来,我们遍历所有坐标,计算每个坐标与目标
点
的
距离
,如果这个
距离
更小,我们就更新最小
距离
和
最近
点
。最后,函数返回
最近
的那个
点
。对于人工智能大模型的应用,我们可以使用机器学习的方法来预测未知
点
的位置。例如,如果我们有一些已知
点
的位置和它们对应的标签(比如颜色),我们就可以训练
一个
分类器来预测
一个
新的
点
的位置。如果我们需要找到某个目标
点
的位置,我们可以使用这个分类器来预测未知
点
的位置。然后,我们可以通过遍历这个列表并计算每个坐标与给
定
点
之间的
距离
(可以使用欧几里得
距离
公式),找到
距离
这个
点
最近
的那个坐标。
给定数轴上n个
点
,
找出
一个
到他们的
距离
之和尽量小的
点
其实不难猜到,这个最优的解就是这些数的中位数(即排序以后位于中间的数)。 我们证明的是给定数轴上n个
点
,在数轴上的所有
点
中,中位数离所有顶
点
之和的
距离
之和最小。 想象一数轴,任意找
一个
点
,它左边有4个
点
,右边有2个
点
,把该
点
往左移动一
点
点
,不要移动太多,以免碰到其他输入
点
。假设移动了d单位
距离
,则该
点
到左边4个
点
的
距离
各减少d,该
点
都右边2个
点
的
距离
各增加d,但总的来说,
距离
之和减少了2d。
距两
点
距离
之比恒
定
点
的轨迹
距两
点
距离
之比恒
定
点
的轨迹 问题 到两
点
的
距离
之和不变的
点
轨迹是椭圆,到两
点
距离
之差不变的
点
轨迹是又曲线,那么到两
点
距离
之比不变
点
的轨迹是什么呢? 由于角平分线的特性,问题可以这样描述: AB之间有一
点
D,在AB之外找一
点
C,所得CD是∠ACB\angle{ACB}∠ACB的角平分线,求C的轨迹。 三角形两腰的比例为:ACBC=ADDB\frac{AC}{BC} = \frac{AD}{DB}BCAC=DBAD 而这个比例固定,容易用解析几何的方法求出C的轨迹方程。结果是
一个
圆。 这里使用几何的方法证
(
点
对问题)
找出
距离
最近
的
点
对
import java.util.*; public class FindNearestPoint { public static void main(String[] args){ Scanner buf=new Scanner(System.in); System.out.println("Find Nearest Points"); System.out.println("Enter the number of points"); .
C++ 语言
65,186
社区成员
250,526
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章