看下这个是不是想要的,将大小关系转换成数字
@m=(4,2,8,5,7,3,6);
$n = 1;
for (0..$#m-1)
{
if ($m[$_] > $m[$_+1])
{
}
else
{
$n += 1<<($#m-1-$_);
}
}
print "$n\n";
$n--;
for (0..$#m-1)
{
unshift @d, ($n & 1)?'<':'>';
$n >>= 1;
}
@r = map{ $d[$_] . $m[$_+1]} 0..$#d;
print "$m[0]@r\n";
#!/usr/bin/perl
use 5.016;
while () {
my ( $g1, $g2, $g3 ) = split;
my $r = $g1 > $g2 ? $g2 > $g3 ? 1 : 2 : $g2 > $g3 ? 3 : 4;
say "r = $r\t[$g1, $g2, $g3]";
}
__DATA__
3 2 1
5 2 3
1 3 2
1 2 3
r = 1 [3, 2, 1]
r = 2 [5, 2, 3]
r = 3 [1, 3, 2]
r = 4 [1, 2, 3]