1

Perl は初めてで、2 つの配列を乗算したいと考えています。

my @array1 = (1,2,3);
my @array2 = (2,4,6);

次のように印刷します。

      # output ==
      #          2  4  6
      #          4  8 12
      #          6 12 18

編集:

とった

my @array1 = (1,2,3);
my @array2 = (2,4,6);

multiply_array(\@array1, \@array2);

sub multiply_array{
     my ($a1, $a2)=@_;
     for(my $i=0; $i<3; $i++){
         for(my $j=0; $j<3; $j++){
             my $x = @$a1[$i]*@$a2[$j];
             print $x."\t";
        }
         print "\n";
    }
}
4

2 に答える 2

5

配列に対して実行しようとしている操作は、デカルト積と呼ばれます。

デカルト積を使用して配列の配列を作成する:

my @product = map { my $a = $_; [map { $_ * $a } @array2] } @array1;

非常に冗長な形式で出力します。

use Data::Dumper;
Dumper(@product);

配列に保存せずに製品を印刷するだけです:

for my $x (@array1) {
    for my $y (@array2) {
        print $x * $y . "\t";
    }
    print "\n";
}
于 2013-02-25T22:06:05.303 に答える
0

配列の参照を関数に渡しました。

->したがって、を使用して配列要素にアクセスする必要があります。

できることは次のとおりです。

use strict;
use warnings;

my @array1 = (1,2,3);
my @array2 = (2,4,6);

multiply_array(\@array1, \@array2);

sub multiply_array{
    my ($a1, $a2)=@_;
    for(my $i=0; $i<3; $i++){
        for(my $j=0; $j<3; $j++){
            my $x = $a1->[$i]*$a2->[$j];
            print $x."\t";
        }
        print "\n";
    }
}
于 2013-02-26T06:32:26.580 に答える