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 1506. Maximum Intra-Vector Swaps

Created by Richard Zapor

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

Tags

Problem Group

Solution Statistics

22 correct solutions 18 incorrect solutions
Last solution submitted on Dec 25, 2014

Problem Comments