combination ( m seq k -- seq' ) (original) (raw)
Vocabulary
math.combinatorics
Inputs
m | a non-negative integer |
---|---|
seq | a sequence |
k | a non-negative integer |
Outputs
seq' | a sequence |
---|
Word description
Outputs the mth lexicographical combination of seq choosing k elements.
Notes
Combinations are 0-based and a bounds error will be thrown if m is larger than seq length k nCk.
Examples
USING: math.combinatorics sequences prettyprint ; 6 7 4 combination .
{ 0 1 3 6 }
USING: math.combinatorics prettyprint ; 0 { "a" "b" "c" "d" } 2 combination .
{ "a" "b" }
Definition
USING: kernel math.combinatorics.private sequences ;
: combination ( m seq k -- seq' )
swap [ length combination-indices ] [ nths-unsafe ] bi ;