Given some number of ones and zeros, numOnes and numZeros respectively, find the nth permutation of the vector [ones(1,numOnes), zeros(1,numZeros)] according to the lexicographical order. For example, if numOnes = 3 and numZeros = 2 then there are nchoosek(5,3) = 10 permutations of 11100. The lexicographic numbering is below
1 11100
2 11010
3 11001
4 10110
5 10101
6 10011
7 01110
8 01101
9 01011
10 00111
so for instance nthPerm(3,2,8) = [0,1,1,0,1]. You can assume that numOnes and numZeros will always be greater than or equal to 1. Lastly, your code should not enumerate all possibilities since one of the test cases contains billions of permutations.
Solution Stats
Problem Comments
Solution Comments
Show comments
Loading...
Problem Recent Solvers5
Suggested Problems
-
Vectorize the digits of an Integer
338 Solvers
-
MATCH THE STRINGS (2 CHAR) very easy
301 Solvers
-
Find the index of the largest value in any vector X=[4,3,4,5,9,12,0,4.....5]
405 Solvers
-
Matlab Basics II - Create a vector with a repeated entry
254 Solvers
-
487 Solvers
Problem Tags
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!