id 0 1 2 3 4 5
|-------------------
0| 4,-1,-2,-2, 0,-1
1| -1, 5, 0, 2,-3, 1
2| -2, 0, 6, 1,-3, 5
3| -2, 2, 1, 7,-3, 0
4| 0,-3,-3,-3, 8,-3
5| -1, 1, 5, 0,-3, 9
####
let k = 3 then
3,4,5 -> score 7+8+9 = 24 > 17
0,1,2 -> score 4+5+6 = 15 < 17
####
2->5 = 5
3->3 = 7
4->4 = 8
so 2,3,4 -> 5,3,4 = 5+7+8 = 20 > 17
####
#!/usr/bin/perl
use strict;
my $MTX = [
[4,-1,-2,-2, 0,-1],
[-1,5, 0, 2,-3, 1],
[-2,0, 6, 1,-3, 5],
[-2,2, 1, 7,-3, 0],
[0,-3,-3,-3, 8,-3],
[-1,1, 5, 0,-3, 9],
];
for (my $i =0; $i<6; $i++){
for(my $j = 0; $j< 6; $j++){
for(my $k = 0; $k< 6; $k++){
my $sc = ($MTX->[$i]->[$i] + $MTX->[$j]->[$j] + $MTX->[$k]->[$k]);
if ($sc < 17){
next;
}else{
for (my $ii =0; $ii<6; $ii++){
for(my $jj = 0; $jj< 6; $jj++){
for(my $kk = 0; $kk< 6; $kk++){
my $score = ($MTX->[$i]->[$ii] + $MTX->[$j]->[$jj] + $MTX->[$k]->[$kk]);
if($score > 17){
print " $i,$j,$k -> $ii,$jj,$kk = $score\n";
}
}
}
}
}
}
}
}
####
score(2->5) < score(2->2)
####
my $k = 3;
for (my $i =0; $i<6**$k; $i++){
my $t = &decode($i, 6,$k);
print "@{$t}\n";
}
sub decode{
my ($int, $alpha, $k) = @_;
my $r = 0;
my $e = $int;
my $rq = 0;
my $rr = 0;
my $p = 0;
my @aa;
my $j = $k-1;
my $i = 0;
for($i=0; $i < $k-1 ;$i++, $j--){
$p = $alpha**$j;
$rr = $e%$p;
$rq = $e/$p;
$aa[$i] = int($rq);
$e = $rr;
}
$aa[$i] = $e;
return \@aa;
}
=pod
## for starting with 1 instead of 0
sub decode{
my ($int, $alpha, $k) = @_;
my $r = 0;
my $e = $int;
my $rq = 0;
my $rr = 0;
my $p = 0;
my @aa;
my $j = $k-1;
my $i = 0;
for($i=0; $i < $k-1 ;$i++, $j--){
$p = $alpha**$j;
$rr = $e%$p;
$rq = $e/$p;
if($rr == 0){
$rr = ($e-1)%$p;
$rq = ($e-1)/$p;
$r = 1;
}
$aa[$i] = int($rq);
$e = $rr;
}
$aa[$i] = $e+$r-1;
return \@aa;
}
=cut