整数の変数が3つあり、どれが最大の変数(最大整数だけでなく)を見つけたい場合、たとえばaが3、bが4、cが5の場合、cが最大ではなく最大であることを知りたい私に5を返します。これを達成する方法または私は使用する必要があります
use List::Util
$d = max($a,$b,$c);
if($d == $a){}
elsif($d == $b){}
else{}
これは、非常に大きなデータセットの場合でも、PDLを使用すると簡単です。
#!/usr/bin/env perl
use strict;
use warnings;
use PDL;
my $pdl = pdl( 3,4,5 );
my (undef, $max, undef, $max_index) = $pdl->minmaximum;
print "Max: $max (at index $max_index)\n";
個別の変数を使用することで、ほとんどすべてのことが不可能になります。代わりに配列を使用していたとします。
my @a = (3,4,5);
my $max_idx = 0;
for my $idx (1..$#a) {
$max_idx = $idx
if $a[$idx] > $a[$max_idx];
}
say $max_idx;
say $a[$max_idx];
値を配列に格納する
配列内のすべての INDEX をループします (ヒント:0..#$arrayName
コンストラクトを使用してください)
別々の 2 つの変数に保持し$current_max_value
、$current_max_index
より大きい値が見つかったら、$current_max_value
それを に格納し、$current_max_value
現在のインデックスを に格納します。 $current_max_index
ループが終了すると、最大要素のインデックスが見つかりました ( $current_max_index
)