Nifty combos
3517 A. 'senator' treason 3229 A. 'treason' senator All permutations of i.n (perm=. i.@! A. i.) 3 0 1 2 0 2 1 1 0 2 1 2 0 2 0 1 2 1 0 A recursive computation of all size m combinations of i.n .
comb =. basisc`recurc @. testc
testc =. *@[ *. <
basisc =. i.@(<: , [)
recurc =. (countc # startc) ,. (indexc@countc{comb&.<:)
startc =. i.@-.@-
countc =. <:@[ ! <:@[ + |.@startc
indexc =. ;@:((i.-])&.>)
3 comb 4
0 1 2
0 1 3
0 2 3
1 2 3
A recursive computation of all size m partitions of n
part =. basisp`recurp@.testp
testp =. 1&<@[ *. <
basisp =. (0&<@] , [) $ (1&=@[ 1&>.@* ])
recurp =. (maskp formp ])@(part&<:)
maskp =. startp <:/ {."1 <. -.@(-/)@(_2&{.)"1
startp =. +/@{. >:@i.@<.@%&>: {:@$
formp =. pfxp@[ decrp@,. indp@[ { ]
pfxp =. +/"1 # >:@i.@#
decrp =. (>:@(-/)@(_1 0&{) _1} ])"1
indp =. , # */@$ $ i.@{:@$
4 part 8
1 1 1 5
1 1 2 4
1 1 3 3
1 2 2 3
2 2 2 2
|