Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

Problem 1888. Get ranking of a combination

Created by Doug Hull

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.

Problem Group

Solution Statistics

38 correct solutions 10 incorrect solutions
Last solution submitted on Jul 07, 2014