in reply to adding combinations of arrays (of arrays)
use strict; use warnings; my @vals = ( [1,1,1],[0,0,0],[1,0,1],[0,0,1] ); my $n = 2; my @solutions; nSum(\@vals, \@solutions, [], -1, $n); print "@$_\n" for @solutions; sub nSum { my ($vals, $solutions, $sums, $i, $n) = @_; my (@sums, $j, $k); $n--; for $j (($i+1)..$#$vals) { @sums = @$sums; for $k (0..$#{$vals->[0]}) { $sums[$k] += $vals->[$j][$k]; } if ($n) { nSum($vals, $solutions, \@sums, $j, $n); } else { push @$solutions, [@sums]; } } }
You can change the number of elements in the arrays or AoA's and also the value for $n and you should get accurate results regardless.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: adding combinations of arrays (of arrays)
by aquinom (Sexton) on Nov 30, 2011 at 00:36 UTC | |
|
Re^2: adding combinations of arrays (of arrays)
by Anonymous Monk on Nov 30, 2011 at 01:17 UTC |