如何求一群点中最短两点间距离?
帮帮忙啊,就在这些点中求最短两点间距离?(最短的距离) 用佛洛依德算法 很简单么
算出所有两点间的距离 估计是个15*15的上三角矩阵 然后找到一个最小的就OK了 好东西很有用 用弗洛伊德算法吧,很好用的 用图论算法就可以了 图论算法
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
说白了就是,把所有点的距离计算一下 一个一个比较 以后多多分享 以后多多分享 谢了哈!谢了哈!谢了哈! 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