22 lines
484 B
Perl
22 lines
484 B
Perl
use strict 'vars';
|
|
use warnings;
|
|
use feature 'say';
|
|
use bigint;
|
|
|
|
my @b = 1;
|
|
my @Aitkens = [1];
|
|
|
|
push @Aitkens, do {
|
|
my @c = $b[-1];
|
|
push @c, $b[$_] + $c[$_] for 0..$#b;
|
|
@b = @c;
|
|
[@c]
|
|
} until (@Aitkens == 50);
|
|
|
|
my @Bell_numbers = map { @$_[0] } @Aitkens;
|
|
|
|
say 'First fifteen and fiftieth Bell numbers:';
|
|
printf "%2d: %s\n", 1+$_, $Bell_numbers[$_] for 0..14, 49;
|
|
|
|
say "\nFirst ten rows of Aitken's array:";
|
|
printf '%-7d'x@{$Aitkens[$_]}."\n", @{$Aitkens[$_]} for 0..9;
|