flashfishoo 发表于 2012-5-15 21:26

如何求一群点中最短两点间距离?


帮帮忙啊,就在这些点中求最短两点间距离?(最短的距离)

chengjohn 发表于 2012-5-16 14:49

用佛洛依德算法

zjqylcy 发表于 2012-5-16 16:35

很简单么
  算出所有两点间的距离 估计是个15*15的上三角矩阵 然后找到一个最小的就OK了

88静☆峰☆禅88 发表于 2012-5-16 17:20

好东西很有用

xidianzxc 发表于 2012-5-17 10:13

用弗洛伊德算法吧,很好用的

wssl103050 发表于 2012-5-17 13:02

用图论算法就可以了  

Wait-wait! 发表于 2012-5-20 19:13

图论算法
FLOYED算法

设A为一个权矩阵 A=(Aij)nxn, dij表示vivj长度 rij 表示 vi到vj点钟的最短路中的一个点的编号
步骤

一:赋初值。 dij=aij, rij=j k=1
二: 若 dik+dkj <dij 则 dj=dik+dkj, rij=k
三:若 k=n 则终止 否则领k=n+1

说白了就是,把所有点的距离计算一下 一个一个比较

flashfishoo 发表于 2012-5-20 23:00

以后多多分享 以后多多分享

flashfishoo 发表于 2012-5-21 21:26

谢了哈!谢了哈!谢了哈!

梦天涯M 发表于 2012-7-26 17:02

data=xlsread('E:\point');
n=size(data);
mindistance=(data(1,1)-data(2,1))^2+(data(1,2)-data(2,2))^2;
first=1;
second=2;
for i=1:(n(1,1)-1)
    for j=(i+1):n(1,1)
        distance=(data(i,1)-data(j,1))^2+(data(i,2)-data(j,2))^2;
        if (distance<mindistance)
            mindistance=distance;
            first=i;
            second=j;
        end
    end
end
disp(['最短距离为',num2str(sqrt(mindistance)),'     第一个点所在行',num2str(first),'     第二个点所在行',num2str(second)]);
            
        
        
        
   
页: [1] 2
查看完整版本: 如何求一群点中最短两点间距离?