0

整数の変数が3つあり、どれが最大の変数(最大整数だけでなく)を見つけたい場合、たとえばaが3、bが4、cが5の場合、cが最大ではなく最大であることを知りたい私に5を返します。これを達成する方法または私は使用する必要があります

use List::Util

$d = max($a,$b,$c);
if($d == $a){}
elsif($d == $b){}
else{}
4

3 に答える 3

1

これは、非常に大きなデータセットの場合でも、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";
于 2012-10-06T16:32:51.387 に答える
1

個別の変数を使用することで、ほとんどすべてのことが不可能になります。代わりに配列を使用していたとします。

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];
于 2012-10-06T03:31:15.177 に答える
1
  • 値を配列に格納する

  • 配列内のすべての INDEX をループします (ヒント:0..#$arrayNameコンストラクトを使用してください)

  • 別々の 2 つの変数に保持し$current_max_value$current_max_index

  • より大きい値が見つかったら、$current_max_valueそれを に格納し、$current_max_value現在のインデックスを に格納します。 $current_max_index

  • ループが終了すると、最大要素のインデックスが見つかりました ( $current_max_index)

于 2012-10-05T22:32:58.370 に答える