-2
我想查找节点之间最近的距离。查找节点之间最近的距离
这是我的示例数据:
节点,X,Y
1, 3, 5 2, 6, 9 3, 13, 15 4, 16, 20 5, 30, 50
作为一个例子,从节点1到节点2的5最近距离我想找到从最近距离所有节点都作为节点2,3,4,5。
我该如何在Perl中实现这个功能?
这是我到目前为止有:
use strict;
use warnings;
use Data::Dumper;
open(IN , "<" , "sample.txt") or die "Can't open this file.";
my @two_dimentional_array;
while (my $line=<IN>)
{
my @arr_line=split (" *, *" , $line);
my @one_dimentional_array;
push @one_dimentional_array , @arr_line;
push @two_dimentional_array, [@arr_line];
}
for(my $i=0 ; $i<=$#two_dimentional_array ; $i++)
{
my ($n_1 , $X_1 , $y_1)[email protected]{$two_dimentional_array[$i]};
for (my $j=0 ; $j<=$#two_dimentional_array ; $j++)
{
my ($n_2 , $X_2 , $y_2)[email protected]{$two_dimentional_array[$j]};
chomp($y_1);
chomp($y_2);
if($n_1 != $n_2)
{
my $distance=sqrt(($X_2-$X_1)**2 + ($y_2-$y_1)**2);
print "Distance ".$distance." from node ".$n_1." to node ".$n_2."\n";
}
}
}
#print Dumper(\@two_dimentional_array);
先生,我想使用哈希的话,我怎么能impliment呢? – 2012-08-11 06:57:47
@FaisalHashmi:你为什么要使用散列? – Borodin 2012-08-11 19:38:54