Math-Permute-Array
view release on metacpan or search on metacpan
lib/Math/Permute/Array.pm view on Meta::CPAN
my $i = 0;
while($rest != 0){
$res[$i] = splice @array, $rest % ($#array + 1), 1;
$rest = int($rest / ($#array + 2));
$i++;
}
push @res, @array;
return \@res;
}
sub Apply_on_perms(&@)
{
my $func = shift;
my $array = shift;
return undef unless (defined $func and defined $array);
my $rest;
my $i;
my $j;
my @array = @{$array};
my $size = $#array+1;
my $card = factorial($size);
( run in 0.225 second using v1.01-cache-2.11-cpan-49f99fa48dc )