在行之間讀取,我猜測你正在尋找模數運算符。
#!/usr/bin/env perl
use strict;
use warnings;
use List::Util qw(sum);
use constant WINDOW_SIZE => 20;
my @data = (1 .. 10_000);
my @window = @data[0 .. (WINDOW_SIZE - 1)];
my $n = 1;
for my $i (WINDOW_SIZE .. $#data) {
my $avg = sum(@window)/@window;
printf "%d: %.3f\n", ($n % WINDOW_SIZE) + 1, $avg;
shift @window;
push @window, $data[$i];
++$n;
}
輸出示例:
1: 10.500
2: 11.500
3: 12.500
4: 13.500
5: 14.500
6: 15.500
7: 16.500
8: 17.500
9: 18.500
10: 19.500
11: 20.500
12: 21.500
13: 22.500
14: 23.500
15: 24.500
16: 25.500
17: 26.500
18: 27.500
19: 28.500
20: 29.500
1: 30.500
2: 31.500
3: 32.500
...
CPAN有幾個統計模塊。 – toolic
澄清這樣一個問題的一個好方法是給出樣本輸入和輸出。 –