PERL 中如何求元素的期望和方差

2025-05-10 03:06:04
推荐回答(2个)
回答1:

while () {
chomp;
@arr = split(" ", $_);
next if $#arr < 0;
print "average  ", aver(\@arr), "\n";
print "variance ", var(\@arr), "\n";
}
sub aver{
my $arr = shift;
my $s = 0;
grep {$s += $_}@$arr;
return $s/@$arr;
}
sub var {
my $arr = shift;
my $v = aver($arr);
my $d = 0;
grep {$d += ($_-$v)**2;}@$arr;
return $d;
}
__DATA__
1 2 3 4 5 6 7 8 9
3 4 5 6 7 8 9 2 1

回答2:

方差少除了个N