0-1

First part is combinations filtered on a certain property. Second part (extra credit) is permutations of those combinations.

This is pretty much duplicating other tasks, in process if not wording. Even though I am adding a solution, my vote would be for deletion as it doesn't really add anything to the other tasks; Combinations, Permutations, Subset sum problem and to a large extent 4-rings or 4-squares puzzle.

for <1 2 3 4 5>, 6
   ,<1 1 2 3 3 4 5>, 6
   ,<1 2 3 4 5 5 5 5 15 15 10 10 10 10 25 100>, 40
  -> @items, $sum {

    put "\n\nHow many combinations of [{ @items.join: ', ' }] sum to $sum?";

    given ^@items .combinations.grep: { @items[$_].sum == $sum } {
        .&display;
        display .race.map( { Slip(.permutations) } ), '';
    }
}

sub display ($list, $un = 'un') {
    put "\nOrder {$un}important:\nCount: { +$list }\nIndices" ~ ( +$list > 10 ?? ' (10 random examples):' !! ':' );
    put $list.pick(10).sort».join(', ').join: "\n"
}

Output:

Last updated

Was this helpful?