Problem 1506. Maximum Intra-Vector Swaps
This Challenge, based upon a contest in which Rokicki came in 2nd, is to find sequences containing 1:N that require maximum iterations prior to the value 1 appearing in the first position.
The processing rule is that positions 1 thru Vector(1) are swapped. Processing stops when Vector(1) is 1.
Example Sequences:
[3 1 2], [2 1 3], [1 2 3] Score 2 [3 1 4 5 2][4 1 3 5 2][5 3 1 4 2][2 4 1 3 5][4 2 1 3 5][3 1 2 4 5][2 1 3 4 5][1 2 3 4 5]
Input: n (Integer from 1 to 31) (16 Actual Cases 2:11 13 17 19 23 29 31)
Output: Vector of values 1:n
Example:
Input: 5 Output: [3 1 4 5 2]
Score: 7
A minimum cumulative score of 531 for the 17 cases is required to Pass.
Final Score = 2531 - sum(scores)
Hints:
Usage of perms for 10 or higher may cause Cody Memory/Time issues. Random subsets are suggested for n>9.
Request: If Code is implemented external then please post as a block comment.
Faster Code Block than fliplr:
function count=process_seq(seq) count=0; while seq(1)>1 count=count+1; seq(1:seq(1))=seq(seq(1):-1:1); end end
Solution Stats
Problem Comments
-
1 Comment
Wonderful problem
Solution Comments
Show commentsProblem Recent Solvers7
Suggested Problems
-
Choose the best fitting dominoes
218 Solvers
-
248 Solvers
-
Replace all zeros and NaNs in a matrix with the string 'error'
100 Solvers
-
607 Solvers
-
We love vectorized solutions. Problem 1 : remove the row average.
841 Solvers
More from this Author308
Problem Tags
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!