24小时热门版块排行榜    

查看: 2226  |  回复: 7

nenyan

铜虫 (初入文坛)


[交流] 【求助】求算法,两点间距离问题

求算法:
平面上有很多点,每个点的坐标x,y已知。求相邻两点距离最大的值。
点大概如下分布

。 。 。 。 。 。。。  
。 。。 。。 。 。 。。  
。 。 。 。 。 。 。 。 。
。 。。 。。。 。 。。。
上下也算相邻,左右也算相邻。不是求所有这些点中距离最大的那两点,而是相邻的这么多距离最大的那个距离。
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

» 抢金币啦!回帖就可以得到:

查看全部散金贴

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

smart0193

木虫 (小有名气)


★ ★ ★
余泽成(金币+3):谢谢参与应助!欢迎常来程序语言版! 2010-12-07 16:23:38
nenyan(金币+10):xiexie le 2010-12-14 11:38:05
#include
#include
#define ROWS 2
#define COLS 2
typedef struct
{
        double x;
        double y;
}POINT;

void main()
{
        POINT coords[ROWS][COLS];
        int i,j;
        double dis,max=0;

        for(i=0;i                 for (j=0;j                         cin>>coords[j].x>>coords[j].y;
       
        for(i=0;i                 for(j=0;j                 {
                        if (j                         {
                                dis=sqrt((coords[j].x-coords[j+1].x)*(coords[j].x-coords[j+1].x)+(coords[j].y-coords[j+1].y)*(coords[j].y-coords[j+1].y));
                                if (dis>max)
                                        max=dis;
                        }
                        if (i                         {
                                dis=sqrt((coords[j].x-coords[i+1][j].x)*(coords[j].x-coords[i+1][j].x)+(coords[j].y-coords[i+1][j].y)*(coords[j].y-coords[i+1][j].y));
                                if (dis>max)
                                        max=dis;
                        }
                }
        cout<<"the maximum distance is "< }
2楼2010-12-07 09:34:13
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

linyujack

铜虫 (小有名气)



余泽成(金币+1):谢谢参与应助! 2010-12-14 09:56:05
有没有稍微快速一点的方法呢?

坐标值(x,y)数据存储在两个二维数组(X[][],y[][])中。
从左上角第一点开始,按行向右移动,分别计算该点与右边一个点和下边一个点的距离,与MAX比较后赋最大值给MAX。
然后计算下一点与右边一点和下边一点的距离,与MAX比较后赋最大值给MAX。
计算完一行之后,计算下一行,最终计算完毕的MAX为最大值。
3楼2010-12-13 23:07:39
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

shanly

铁杆木虫 (职业作家)


见识了
4楼2010-12-13 23:32:45
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

余泽成(金币+1):好久不见! 2010-12-14 09:56:32
这个可以用很多办法“加速”。
例如,可以采用遗传算法。
5楼2010-12-14 08:09:18
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

smart0193

木虫 (小有名气)



小木虫(金币+0.5):给个红包,谢谢回帖交流
遗传算法可能得到的是近似最优解。其实这个问题还有很多方法,关键是算法设计,呵呵。
6楼2010-12-14 20:35:05
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

stephenliu89

银虫 (小有名气)



小木虫(金币+0.5):给个红包,谢谢回帖交流
二楼。正解

[ Last edited by stephenliu89 on 2010-12-15 at 00:44 ]
7楼2010-12-15 00:11:05
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

gcssg1

金虫 (小有名气)


又涨见识了
8楼2010-12-15 15:31:49
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 nenyan 的主题更新
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 0703 总分319求调剂 +3 Xinyuu 2026-03-02 3/150 2026-03-02 17:20 by houyaoxu
[考研] 理学,工学,农学调剂,少走弯路,这里欢迎您! +3 likeihood 2026-03-02 5/250 2026-03-02 16:37 by ZRH_878
[考研] 材料284求调剂,一志愿郑州大学英一数二专硕 +12 想上岸的土拨鼠 2026-02-28 12/600 2026-03-02 16:18 by youmomaoyan
[考研] 282求调剂 +4 2103240126 2026-03-02 5/250 2026-03-02 13:45 by littlehu66
[考研] 338求调剂 +3 18162027187 2026-03-02 3/150 2026-03-02 13:12 by houyaoxu
[考研] 材料与化工328求调剂 +3 。,。,。,。i 2026-03-02 3/150 2026-03-02 13:09 by houyaoxu
[考研] 一志愿山东大学材料与化工325求调剂 +3 半截的诗0927 2026-03-02 3/150 2026-03-02 12:58 by houyaoxu
[考研] 26考研报考西工大材料308分求调剂 +4 weizhong123 2026-03-01 4/200 2026-03-02 12:46 by 无际的草原
[考研] 292求调剂 +7 yhk_819 2026-02-28 7/350 2026-03-02 12:43 by 无际的草原
[考研] 265分求调剂不调专业和学校有行学上就 +6 礼堂丁真258 2026-02-28 9/450 2026-03-02 12:04 by 52hz~~
[考研] 281求调剂 +5 2026计算机_诚心 2026-03-01 8/400 2026-03-02 11:05 by 汪!?!
[考研] 275求调剂 +3 L-xin? 2026-03-01 6/300 2026-03-02 10:22 by 热情沙漠
[考研] 材料复试调剂 +4 学材料的点 2026-03-01 5/250 2026-03-02 08:26 by houyaoxu
[考研] 279求调剂 +3 dua1 2026-03-01 4/200 2026-03-02 00:23 by 大脸蛋子
[基金申请] 成果系统访问量大,请一小时后再尝试。---NSFC啥时候好哦,已经两天这样了 +4 NSFC2026我来了 2026-02-28 4/200 2026-03-01 22:37 by 铁门栓
[考研] 290求调剂 +9 材料专硕调剂; 2026-02-28 11/550 2026-03-01 17:21 by sunny81
[考研] 313求调剂 +3 水流年lc 2026-02-28 3/150 2026-03-01 16:01 by 新能源达人
[考研] 307求调剂 +5 wyyyqx 2026-03-01 5/250 2026-03-01 15:21 by Fff-1
[考研] 寻找调剂 +4 LYidhsjabdj 2026-02-28 4/200 2026-03-01 10:56 by sunny81
[高分子] 求环氧树脂研发1名 +3 孙xc 2026-02-25 11/550 2026-02-28 16:57 by ichall
信息提示
请填处理意见