first commit

This commit is contained in:
douboer
2025-09-17 16:08:16 +08:00
parent 9395faa6b2
commit 3ff47c11d5
1318 changed files with 117477 additions and 0 deletions

View File

@@ -0,0 +1,31 @@
###
### partition-iterator-clumsy
###
## Chapter 5 section 2
sub make_partition {
my $n = shift;
my @agenda = ([$n, # $largest
[], # \@rest
1, # $min
int($n/2), # $max
]);
return Iterator {
while (@agenda) {
my $item = pop @agenda;
my ($largest, $rest, $min, $max) = @$item;
for ($min .. $max) {
push @agenda, [$largest - $_, # $largest
[$_, @$rest], # \@rest
$_, # $min
int(($largest - $_)/2), # $max
];
}
return [$largest, @$rest];
}
return;
};
}