Perl九宮格計算程式
use strict;
my @num = (1, 2, 3, 4, 5, 6, 7, 8, 9);
my @list = ();
my $n=0;
my $a1;
my $a2;
my $a3;
my $a4;
my $a5;
my $a6;
my $a7;
my $a8;
comb(\@list,\@num);
sub comb {
# list all the combination of a list
my ($sel, $bag) = @_;
if (@$bag == 1) {
# $n++;
# print $n." | ";
# print @$sel, @$bag, "\n";
$a1=@$sel+@$sel+@$sel;
$a2=@$sel+@$sel+@$sel;
$a3=@$sel+@$sel+@$bag;
$a4=@$sel+@$sel+@$sel;
$a5=@$sel+@$sel+@$sel;
$a6=@$sel+@$sel+@$bag;
$a7=@$sel+@$sel+@$bag;
$a8=@$sel+@$sel+@$sel;
if($a1==$a2){if($a2==$a3){if($a3==$a4){if($a4==$a5){if($a5==$a6){if($a6==$a7){if($a7==$a8){
$n++;
print "\t",@$sel,", ",@$sel,", ",@$sel,"\n";
print $n,"\t",@$sel,", ",@$sel,", ",@$sel,"\n";
print "\t",@$sel,", ",@$sel,", ",@$bag,"\n";
print "---------------\n";
}}}}}}}
# print $a1,", ",$a2,", ",$a3;
# print @$sel;
# print @$sel;
# print @$sel;
# print @$sel;
# print @$sel;
# print @$sel;
# print @$sel;
# print @$sel;
# print @$bag;
# print "\n";
return;
}
for (my $i = 0; $i < @$bag; $i++) {
my @tail = @$bag;
my @pre = (@$sel, splice(@tail, $i, 1));
comb(\@pre, \@tail);
}
}
頁:
[1]