ノード間の最も近い距離を見つけたい。
ここに私のサンプルデータがあります:
ノード、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)=@{$two_dimentional_array[$i]};
for (my $j=0 ; $j<=$#two_dimentional_array ; $j++)
{
my ($n_2 , $X_2 , $y_2)=@{$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);