くだすれPerl(超初心者用)3
■ このスレッドは過去ログ倉庫に格納されています
0441nobodyさん
2009/11/10(火) 23:44:48ID:???sub combination {
my ($r, @data) = @_;
my $n = @data;
my @result;
combinatorial( $n, $r, 0, [], \@data, \@result );
return @result;
}
sub combinatorial {
my ($n, $r, $pos, $combi, $data, $result) = @_;
if ( $r == 0 ) {
push @$result, [ @$combi ];
return;
}
for my $i ( $pos..$n-$r ) {
push @$combi, $data->[$i];
combinatorial( $n, $r-1, ++$pos, $combi, $data, $result );
pop @$combi;
}
}
■ このスレッドは過去ログ倉庫に格納されています