查找数组Perl中最大次数的最小值

查找数组Perl中最大次数的最小值,perl,Perl,我需要找出数组中出现最多次的最小值。我必须将这些值存储在其他数组中 my @arr=(1,2,3,4,1,3,4,1); 1是出现最大次数的最小值。使用此选项,它将非常适合您 my @arr=(1, 2, 3, 4, 1, 3, 4, 1); my %count; foreach (@arr){ $count{$_}++; } my ($min_by_value) = sort { $a <=> $b} keys %count; my ($max_by_count) = s

我需要找出数组中出现最多次的最小值。我必须将这些值存储在其他数组中

my @arr=(1,2,3,4,1,3,4,1);

1是出现最大次数的最小值。

使用此选项,它将非常适合您

my @arr=(1, 2, 3, 4, 1, 3, 4, 1);
my %count;
foreach (@arr){
    $count{$_}++;
}
my ($min_by_value) = sort { $a <=> $b} keys %count;
my ($max_by_count) = sort { $count{$b} <=> $count{$a} } keys %count;
my $max =
    ($count{$min_by_value} >= $count{$max_by_count}) ? $min_by_value : $max_by_count;
print "minimum value max times = $max\n";
my@arr=(1,2,3,4,1,3,4,1);
我的%计数;
foreach(@arr){
$count{$\}++;
}
my($min_by_value)=排序{$a$b}键%count;
my($max_by_count)=排序{$count{$b}$count{$a}}键%count;
我的$max=
($count{$min\u by_value}>=$count{$max\u by_count})$min_by_值:$max_by_计数;
打印“最小值最大次数=$max\n”;

如果有两个或多个元素出现相同次数,则首选较小的元素:

my @arr=(1,2,3,4,1,3,4,1);

my %seen;
$seen{$_}++ for @arr;

my ($min_val) = sort { $seen{$b} <=> $seen{$a} || $a <=> $b } keys %seen;
print "$min_val\n";
my@arr=(1,2,3,4,1,3,4,1);
我看到的百分比;
@arr的$seen{$}++;
my($min_val)=排序{$seen{$b}$seen{$a}| |$a$b}键%seen;
打印“$min\u val\n”;

您可以使用哈希来计算每个数字的出现次数。最频繁的数字的频率等于频率的
max
,其中的最小值可以通过
min
找到,
min
max
都来自
List::Util

#!/usr/bin/perl

use warnings;
use strict;

use List::Util qw(min max);

my @arr = (1, 2, 3, 4, 1, 3, 4, 1);
my %occurrences;
$occurrences{$_}++ for @arr;
my $max_freq = max(values %occurrences);
print min(grep $max_freq == $occurrences{$_}, keys %occurrences);

我的@arr=(1,2,2,2,1,2,2,1)怎么样?1较小,而2出现的次数较多?因此2将作为输出,因为我认为是@GauravPandey您的权利这不起作用,因为如果所有值都相同,那么它就是working@Rahul我已经更新了我的答案我已经检查过了它工作正常