Problem 1888. Get ranking of a combination
I have the numbers pulled without replacement from the set [1 2 3 4 5 6 7 8 9 10 11 12 13]; They are then ordered from least to greatest.
So a selection of [3 2 9], [9 2 3] are both considered to be [2 3 9].
There are 286 unique selections possible. These can be ordered in lexicographic order:
Element 1 = [ 1 2 3]
Element 2 = [ 1 2 4]
Element 3 = [ 1 2 5]
Element 4 = [ 1 2 6]
Element 5 = [ 1 2 7]
Element 6 = [ 1 2 8]
Element 7 = [ 1 2 9]
Element 8 = [ 1 2 10]
Element 9 = [ 1 2 11]
Element 10 = [ 1 2 12]
Element 11 = [ 1 2 13]
Element 12 = [ 1 3 4]
Element 13 = [ 1 3 5]
Element 14 = [ 1 3 6]
Element 15 = [ 1 3 7]
...
Element 285 = [10 12 13]
Element 286 = [11 12 13]
Given the three ordered values as a row vector, return the element number.
Do this with an eye for speed, though it is not tested for here.
Looking for a way to do this WITHOUT generating the nchoosek matrix.
Solution Stats
Problem Comments
-
1 Comment
Dyuman Joshi
on 30 Oct 2022
Test suite has been updated with new cases.
Solution Comments
Show commentsProblem Recent Solvers49
Suggested Problems
-
Swap the first and last columns
20439 Solvers
-
Remove any row in which a NaN appears
8588 Solvers
-
4390 Solvers
-
9438 Solvers
-
603 Solvers
More from this Author51
Problem Tags
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!