{"group":{"id":1,"name":"Community","lockable":false,"created_at":"2012-01-18T18:02:15.000Z","updated_at":"2026-04-16T00:12:35.000Z","description":"Problems submitted by members of the MATLAB Central community.","is_default":true,"created_by":161519,"badge_id":null,"featured":false,"trending":false,"solution_count_in_trending_period":0,"trending_last_calculated":"2026-04-16T00:00:00.000Z","image_id":null,"published":true,"community_created":false,"status_id":2,"is_default_group_for_player":false,"deleted_by":null,"deleted_at":null,"restored_by":null,"restored_at":null,"description_opc":null,"description_html":null,"published_at":null},"problems":[{"id":931,"title":"Rubik's Mini-Cube: Solve Randomized Mini-Cube - Score : Moves","description":"The Challenge is to Solve a thoroughly scrambled Mini-Rubik's Cube(2x2x2).\r\n\r\nThe Performance metric is average number of moves for solving 500 cubes.\r\n\r\nA standard Mini-Rubik's Cube is shown in 3-D and also unfolded to identify the specific Tile-face/Vector numbering.\r\n\r\nThe faces are White-Up / Red-Left / Blue-Front / Orange-Right / Yellow-Down / Green-Back (ULFRDB)\r\n\r\nMoves are denoted as F for clockwise rotation of the Front face. F'(or FP) is CCW and F2 is F twice.  The provided function r_new=rubick_rot_mini(mov,r) implements moves 1-18: UFDLBRU'F'D'L'B'R'U2F2D2L2B2R2.\r\n\r\n\r\n\r\n\r\n\u003c\u003chttps://sites.google.com/site/razapor/matlab_cody/minicube2.png\u003e\u003e\r\n\r\n\u003c\u003chttps://sites.google.com/site/razapor/matlab_cody/miniCube_Map24_200.png\u003e\u003e\r\n\r\n\u003c\u003chttp://mathworks.com/matlabcentral/images/surf.gif\u003e\u003e\r\n\r\n\r\n  \r\n  \r\n  Input: (rubik)\r\n  \r\n  rubik: row vector of size 24\r\n  (The cube started [L=0,U=1,F=2,D=3,B=4,R=5] and then receives forty face moves.\r\n\r\n  Output: move_vec (Numeric of moves to solve)\r\n   move_vec:values 1:27 for UFDLBR U'F'D'L'B'R' U2F2D2L2B2R2 XYZX'Y'Z'X2Y2Z2\r\n\r\n* Example:\r\n* If the cube was randomized by [1 9] UD', one solution is [3 7]  which are the complements in reverse order. \r\n* Scoring is average face moves for 500 cubes\r\n* Cube Moves X, Y, and Z do not constitute a move but are needed in the vector \r\n* A string to numeric value function is provided in the template\r\n* Verifications will be by executing your move vector against the provided Rubik and counting number of face moves.\r\n\r\nThe function rubik_rot_mini(mov,r) is provided in the template.\r\n\r\n\r\nThe Function Template Contains a 3D Cube Viewer and the first step in solving is at the bottom in a comment block.\r\n\r\n\r\n* \r\n* \u003chttp://kociemba.org/cube.htm Cube Theory: 20-moves Any Cube\u003e \r\n* \u003chttp://peter.stillhq.com/jasmine/rubikscubesolution.html General Cube Info and Middle Layer\u003e\r\n* \u003chttp://www.speedcubing.com/final_layer_print.html SpeedCube Bottom Sequences\u003e\r\n(Note: Mini-Cube can use the full cube moves and ignore edge effects)\r\n\r\n\r\nComing Soon: The Mini-Cube  (2x2x2): Full Random - Eleven or Less Moves","description_html":"\u003cp\u003eThe Challenge is to Solve a thoroughly scrambled Mini-Rubik's Cube(2x2x2).\u003c/p\u003e\u003cp\u003eThe Performance metric is average number of moves for solving 500 cubes.\u003c/p\u003e\u003cp\u003eA standard Mini-Rubik's Cube is shown in 3-D and also unfolded to identify the specific Tile-face/Vector numbering.\u003c/p\u003e\u003cp\u003eThe faces are White-Up / Red-Left / Blue-Front / Orange-Right / Yellow-Down / Green-Back (ULFRDB)\u003c/p\u003e\u003cp\u003eMoves are denoted as F for clockwise rotation of the Front face. F'(or FP) is CCW and F2 is F twice.  The provided function r_new=rubick_rot_mini(mov,r) implements moves 1-18: UFDLBRU'F'D'L'B'R'U2F2D2L2B2R2.\u003c/p\u003e\u003cimg src=\"https://sites.google.com/site/razapor/matlab_cody/minicube2.png\"\u003e\u003cimg src=\"https://sites.google.com/site/razapor/matlab_cody/miniCube_Map24_200.png\"\u003e\u003cimg src=\"http://mathworks.com/matlabcentral/images/surf.gif\"\u003e\u003cpre class=\"language-matlab\"\u003eInput: (rubik)\r\n\u003c/pre\u003e\u003cpre class=\"language-matlab\"\u003erubik: row vector of size 24\r\n(The cube started [L=0,U=1,F=2,D=3,B=4,R=5] and then receives forty face moves.\r\n\u003c/pre\u003e\u003cpre class=\"language-matlab\"\u003eOutput: move_vec (Numeric of moves to solve)\r\n move_vec:values 1:27 for UFDLBR U'F'D'L'B'R' U2F2D2L2B2R2 XYZX'Y'Z'X2Y2Z2\r\n\u003c/pre\u003e\u003cul\u003e\u003cli\u003eExample:\u003c/li\u003e\u003cli\u003eIf the cube was randomized by [1 9] UD', one solution is [3 7]  which are the complements in reverse order.\u003c/li\u003e\u003cli\u003eScoring is average face moves for 500 cubes\u003c/li\u003e\u003cli\u003eCube Moves X, Y, and Z do not constitute a move but are needed in the vector\u003c/li\u003e\u003cli\u003eA string to numeric value function is provided in the template\u003c/li\u003e\u003cli\u003eVerifications will be by executing your move vector against the provided Rubik and counting number of face moves.\u003c/li\u003e\u003c/ul\u003e\u003cp\u003eThe function rubik_rot_mini(mov,r) is provided in the template.\u003c/p\u003e\u003cp\u003eThe Function Template Contains a 3D Cube Viewer and the first step in solving is at the bottom in a comment block.\u003c/p\u003e\u003cul\u003e\u003cli\u003e\u003c/li\u003e\u003cli\u003e\u003ca href=\"http://kociemba.org/cube.htm\"\u003eCube Theory: 20-moves Any Cube\u003c/a\u003e\u003c/li\u003e\u003cli\u003e\u003ca href=\"http://peter.stillhq.com/jasmine/rubikscubesolution.html\"\u003eGeneral Cube Info and Middle Layer\u003c/a\u003e\u003c/li\u003e\u003cli\u003e\u003ca href=\"http://www.speedcubing.com/final_layer_print.html\"\u003eSpeedCube Bottom Sequences\u003c/a\u003e\r\n(Note: Mini-Cube can use the full cube moves and ignore edge effects)\u003c/li\u003e\u003c/ul\u003e\u003cp\u003eComing Soon: The Mini-Cube  (2x2x2): Full Random - Eleven or Less Moves\u003c/p\u003e","function_template":"function solve_vec = rubik_solve_mini(r)\r\n% Expect Numeric representation of moves (1:27):\r\n% 1:27 are ufdlbr upfpdplpbprp u2f2d2l2b2r2 xyzxpypzpx2y2z2\r\n solve_vec=[]; \r\nend\r\n\r\nfunction r=rubik_rot_mini(mov,r)\r\n%mov is 1:27;  1-6 UFDLBR 7-12 U'F;D'L'B'R' 13-18 U2F2D2L2B2R2 \r\n%             19-27 XYZ X'Y'Z' X2Y2Z2  \r\n% X cube-R, Y cube-U,  Z cube-F\r\n%\r\n% r is a 24 element row vector\r\n% r output is a single row vector \r\n%\r\n% vector mov\r\n% r output is array of length(mov) x 24\r\n%\r\n% Perform Rubik Cube face rotations and cube rotations\r\n% L 1:4 U 5:8 F 9:12 D 13:16 B 17:20 R 21:24 \r\n% \r\npersistent vf\r\nif isempty(vf) %\r\nvf=[9 2 11 4 6 8 5 7 21 10 23 12 13 14 15 16 17 3 19 1 20 22 18 24 ; \r\n    1 2 13 15 5 4 7 3 10 12 9 11 22 14 21 16 17 18 19 20 6 8 23 24 ;\r\n    1 19 3 17 5 6 7 8 9 2 11 4 14 16 13 15 24 18 22 20 21 10 23 12 ;\r\n    2 4 1 3 17 18 7 8 5 6 11 12 9 10 15 16 13 14 19 20 21 22 23 24 ;\r\n    7 5 3 4 23 6 24 8 9 10 11 12 13 1 15 2 18 20 17 19 21 22 16 14 ;\r\n    1 2 3 4 5 6 11 12 9 10 15 16 13 14 19 20 17 18 7 8 22 24 21 23 ;\r\n    20 2 18 4 7 5 8 6 1 10 3 12 13 14 15 16 17 23 19 21 9 22 11 24 ;\r\n    1 2 8 6 5 21 7 22 11 9 12 10 3 14 4 16 17 18 19 20 15 13 23 24 ;\r\n    1 10 3 12 5 6 7 8 9 22 11 24 15 13 16 14 4 18 2 20 21 19 23 17 ;\r\n    3 1 4 2 9 10 7 8 13 14 11 12 17 18 15 16 5 6 19 20 21 22 23 24 ;\r\n    14 16 3 4 2 6 1 8 9 10 11 12 13 24 15 23 19 17 20 18 21 22 5 7 ;\r\n    1 2 3 4 5 6 19 20 9 10 7 8 13 14 11 12 17 18 15 16 23 21 24 22 ;\r\n    21 2 23 4 8 7 6 5 20 10 18 12 13 14 15 16 17 11 19 9 1 22 3 24 ;\r\n    1 2 22 21 5 15 7 13 12 11 10 9 8 14 6 16 17 18 19 20 4 3 23 24 ;\r\n    1 22 3 24 5 6 7 8 9 19 11 17 16 15 14 13 12 18 10 20 21 2 23 4 ;\r\n    4 3 2 1 13 14 7 8 17 18 11 12 5 6 15 16 9 10 19 20 21 22 23 24 ;\r\n    24 23 3 4 16 6 14 8 9 10 11 12 13 7 15 5 20 19 18 17 21 22 2 1 ;\r\n    1 2 3 4 5 6 15 16 9 10 19 20 13 14 7 8 17 18 11 12 24 23 22 21 ;\r\n    3 1 4 2 9 10 11 12 13 14 15 16 17 18 19 20 5 6 7 8 22 24 21 23 ;\r\n    9 10 11 12 6 8 5 7 21 22 23 24 15 13 16 14 4 3 2 1 20 19 18 17 ;\r\n    14 16 13 15 2 4 1 3 10 12 9 11 22 24 21 23 19 17 20 18 6 8 5 7 ;\r\n    2 4 1 3 17 18 19 20 5 6 7 8 9 10 11 12 13 14 15 16 23 21 24 22 ;\r\n    20 19 18 17 7 5 8 6 1 2 3 4 14 16 13 15 24 23 22 21 9 10 11 12 ;\r\n    7 5 8 6 23 21 24 22 11 9 12 10 3 1 4 2 18 20 17 19 15 13 16 14 ;\r\n    4 3 2 1 13 14 15 16 17 18 19 20 5 6 7 8 9 10 11 12 24 23 22 21 ;\r\n    21 22 23 24 8 7 6 5 20 19 18 17 16 15 14 13 12 11 10 9 1 2 3 4 ; \r\n    24 23 22 21 16 15 14 13 12 11 10 9 8 7 6 5 20 19 18 17 4 3 2 1 ];\r\nend\r\n\r\nr=r(vf(mov,:));\r\nend\r\n\r\n\r\nfunction move_vec=decode27_movestr_rev001(movestr)\r\n% Active character Inputs: UFDLBRXYZ, GQ are pre-processed\r\n% 1-6 UFDLBR 7-12 U'F;D'L'B'R' 13-18 U2F2D2L2B2R2 19-27 XYZX'Y'Z'X2Y2Z2\r\nmovestr=upper(movestr);\r\nmovestr=strrep(movestr,'''','P'); % simplify further searches\r\n\r\nmovestr=strrep(movestr,'UP',' 7 ');\r\nmovestr=strrep(movestr,'FP',' 8 ');\r\nmovestr=strrep(movestr,'DP',' 9 ');\r\nmovestr=strrep(movestr,'LP',' 10 ');\r\nmovestr=strrep(movestr,'BP',' 11 ');\r\nmovestr=strrep(movestr,'RP',' 12 ');\r\nmovestr=strrep(movestr,'U2',' 13 ');\r\nmovestr=strrep(movestr,'F2',' 14 ');\r\nmovestr=strrep(movestr,'D2',' 15 ');\r\nmovestr=strrep(movestr,'L2',' 16 ');\r\nmovestr=strrep(movestr,'B2',' 17 ');\r\nmovestr=strrep(movestr,'R2',' 18 ');\r\nmovestr=strrep(movestr,'U',' 1 ');\r\nmovestr=strrep(movestr,'F',' 2 ');\r\nmovestr=strrep(movestr,'D',' 3 ');\r\nmovestr=strrep(movestr,'L',' 4 ');\r\nmovestr=strrep(movestr,'B',' 5 ');\r\nmovestr=strrep(movestr,'R',' 6 ');\r\nmovestr=strrep(movestr,'XP',' 22 ');\r\nmovestr=strrep(movestr,'YP',' 23 ');\r\nmovestr=strrep(movestr,'ZP',' 24 ');\r\nmovestr=strrep(movestr,'X2',' 25 ');\r\nmovestr=strrep(movestr,'Y2',' 26 ');\r\nmovestr=strrep(movestr,'Z2',' 27 ');\r\nmovestr=strrep(movestr,'X',' 19 ');\r\nmovestr=strrep(movestr,'Y',' 20 ');\r\nmovestr=strrep(movestr,'Z',' 21 ');\r\n\r\nmove_vec=str2num(movestr);\r\n\r\nend % move_vec\r\n\r\n\r\n%{\r\n% 3D Viewer and Development Environment\r\n\r\n\r\nfunction RubikMini_3D_2724_Solver_viewer\r\n%Rubiks Mini-Cube Play\r\n%Creator: Richard Zapor\r\n% 09/01/12\r\nclear all\r\nglobal pmap plate zCmap r  % For 3D  viewer\r\n\r\n% initialize cube\r\n r(1:4)=0;     %Left   0 R\r\n r(5:8)=1;     %Up     1 W\r\n r(9:12)=2;    %Front  2 B\r\n r(13:16)=3;   %Down   3 Y\r\n r(17:20)=4;   %Back   4 G\r\n r(21:24)=5;   %Right  5 O\r\n rnorm=r;\r\n \r\n % Map 3D platelettes and surfaces\r\n [pmap plate]=cube_faces; % One time association of array to 3D surfaces\r\n  % zCmap=[0,0,0;1,1,1;0,0,1;1,1,0;1,0,0;0,1,0;1,.6,0]; \r\n  % 1-Blk,2-Wht,3-Blu,4-Yellow,5-Red,6-Green,7-Orange\r\n  \r\n  zCmap=[0,0,0;1,0,0;1,1,1;0,0,1;1,1,0;0,1,0;1,.6,0]; \r\n  % 1-Blk,2-Red,3-Wht,4-Blu,5-Yellow,6-Green,7-Orange\r\n\r\n% Initialize 3D figure\r\nfigure(2);set(gca,'CameraPosition',[6 -2 7]); % Initial 3D setup\r\n   axis ([-1 4 -1 4 -1 4]);\r\n   axis equal % This is slow but needed for free rotate 1.2 sec\r\n   axis off\r\nview3D % Calls subroutine that produces a 3D image in figure 2\r\n\r\n% r=rubik_rot2(r,mov)\r\n% mov is 1:27;  1-6 UFDLB 7-12 U'F;D'L'B' 13-18 U2F2D2L2B2 \r\n%             22-27 XYZ X'Y'Z' X2Y2Z2  \r\n% X cube-R, Y cube-U,  Z cube-F\r\n\r\nfprintf('Move Entry (UFDLBRXYZ) eg U U2 U'' (or Up) or G=GoReset P=Play Q-Quit  :\\n');\r\nwhile 1 % Infinite loop\r\n str1=input('Enter Move(s):','s');\r\n if isempty(str1),continue;end\r\n movestr1=regexp(upper(strtrim(str1)),'\\s*','split');\r\n if movestr1{1}=='P',break;end\r\n if movestr1{1}=='Q',return;end\r\n if movestr1{1}=='G'\r\n  r=rnorm;\r\n  view3D\r\n  continue;\r\n end\r\n \r\n move_vec=decode27_movestr_rev001(str1);\r\n \r\n for i=1:length(move_vec) \r\n  r=rubik_rot_mini(move_vec(i),r);\r\n end\r\n% view3D\r\n\r\n \r\nend % while move manipulation practice loop\r\n\r\n% Setup Cube and Play\r\n\r\nfprintf('\\n\\nSolve Multiple Cubes\\n')\r\nzcnt=0;\r\nsum_solve=0;\r\nmin_solve=1000;\r\nmax_solve=0;\r\ntic\r\nwhile 1 % Games loop\r\n    mix=40; % Very random cube\r\n    zcnt=zcnt+1;\r\n    if zcnt\u003e100,break;end\r\n% mix=input('\\n\\nHow many random face rotations? (0=Exit) : ');\r\n% if isempty(mix),continue;end\r\n\r\n r=rnorm;\r\n % Initial mix\r\n mov=randi(18,[mix,1]); % do one create movr=randi(18,zcnt,mix) mov=movr(zcnt,:)\r\n for i=1:length(mov) \r\n  if i\u003e1 % Eliminate move undos\r\n  % f2 f2 or f f'  or f' f\r\n   if (mov(i)\u003e12 \u0026\u0026 mov(i-1)==mov(i))||(mov(i-1)\u003c7 \u0026\u0026 mov(i)==mov(i-1)+6)||...\r\n       (mov(i-1)\u003e6  \u0026\u0026 mov(i)==mov(i-1)-6)    \r\n    mov(i)=mov(i)+1;   % 1:17 map to 2:18  18 map to 1\r\n    if mov(i)==19,mov(i)=1;end\r\n   end\r\n  end\r\n  r=rubik_rot_mini(mov(i),r);\r\n end\r\n \r\n r_reset=r;\r\n \r\n solve_vec=[];\r\n \r\n % Check cube for Good face and Edges\r\n % Place on Up; Solve Cross/Corners with u u' or u2\r\n % Assures single move i solved in 1 move, may solve at bottom solid face\r\n % check\r\n \r\n% Insert Solution Code Here\r\n \r\n % Orient Cube R-L W-U B-F  RWB\r\n % Sequence thru BWO OWG GWR  to Solve Top Corners\r\n % Flip Cube to Solve Bottom Layer\r\n % Apply SpeedCube Corner Rotate Algorithms if Bot not Solid or Solved\r\n % If not solved Apply SpeedCube Corner Rotate/Move Algorithms\r\n \r\n % Orient Cube using XYZ to be RWB 3-6-9 RL-WU-BF\r\n  movestr=solve_orient_str(r);\r\n  move_vec=decode27_movestr_rev001(movestr);\r\n   \r\n  move_vec=[move_vec 20]; % add a Y to get to next face\r\n  solve_vec=[solve_vec move_vec];\r\n  \r\n  for i=1:length(move_vec) \r\n   r=rubik_rot_mini(move_vec(i),r);\r\n  end\r\n % end Orient Start Cube\r\n \r\n  % Solve Top Corners\r\n  for corners=2:4 % Solve Top corners TLFC, First Corner Solved\r\n   movestr='';\r\n%   movestr=solve_corners_str(r); % Not provided\r\n   move_vec=decode27_movestr_rev001(movestr);\r\n   \r\n   move_vec=[move_vec 20]; % add a Y to get to next face\r\n   solve_vec=[solve_vec move_vec];\r\n   \r\n   for i=1:length(move_vec) \r\n    r=rubik_rot_mini(move_vec(i),r);\r\n   end\r\n  end % corners\r\n  \r\n  % Solve Bottom by flipping to Top and running SpeedCube Sequences\r\n  \r\n  % Position Bottom to Top\r\n  r=rubik_rot_mini(25,r); % x2\r\n  solve_vec=[solve_vec 25];\r\n  \r\n  solved=0;\r\n  % Function Check u-rotate/solve\r\n  % Is Bottom layer solveable? Needs only a u u' or u2\r\n  if all(r(5:8)==r(5)) \u0026\u0026 r(1)==r(3)  \u0026\u0026 r(9)==r(11) \u0026\u0026 ...\r\n     r(21)==r(23)  \u0026\u0026 r(20)==r(18)\r\n   %Appears to have a U rotate solution\r\n   f_edge_loc=find(r([9 21 20 1])==r(10),1,'first');\r\n   %if isempty(f_edge_loc),continue;end % Bottom not solved\r\n   %if f_edge_loc==1, do nothing;end it is in right location\r\n   if f_edge_loc==2\r\n    r=rubik_rot_mini(1,r);\r\n    solve_vec=[solve_vec 1];\r\n   end\r\n   if f_edge_loc==3\r\n    r=rubik_rot_mini(13,r);\r\n    solve_vec=[solve_vec 13];\r\n   end\r\n   if f_edge_loc==4\r\n    r=rubik_rot_mini(7,r);\r\n    solve_vec=[solve_vec 7];\r\n   end\r\n   solved=1;\r\n%fprintf('U Rotate Solve Success\\n')\r\n  end % Bottom layer rotate to solve\r\n  \r\n  if ~all(r(5:8)==r(5)) % Multiple top face invalid - Try Quick full solve\r\n    movestr='';\r\n%    [movestr solved]=full_solve_bottom_str(r); % Not provided\r\n    if solved\r\n% fprintf('H Quick Full Solve Success\\n')\r\n%      view3D\r\n     move_vec=decode27_movestr_rev001(movestr);\r\n     solve_vec=[solve_vec move_vec];\r\n     for i=1:length(move_vec) \r\n      r=rubik_rot_mini(move_vec(i),r);\r\n     end\r\n%      view3D\r\n    end % Solved\r\n  end\r\n   \r\n \r\n  if ~solved % Execute Full Speed Cube Two Tier Methods\r\n    movestr='';\r\n %    movestr=solve_bottom_str(r); % Not provided\r\n    move_vec=decode27_movestr_rev001(movestr);\r\n   \r\n    solve_vec=[solve_vec move_vec];\r\n   \r\n    for i=1:length(move_vec) \r\n     r=rubik_rot_mini(move_vec(i),r);\r\n    end\r\n  end\r\n  \r\n% Normal Cube Return Point\r\n  \r\n % Verify Solution and Generate Statistics\r\n  if all(r(1:4)==r(4)) \u0026\u0026 all(r(5:8)==r(8))  \u0026\u0026 all(r(9:12)==r(9)) \u0026\u0026 ...\r\n     all(r(13:16)==r(13))  \u0026\u0026 all(r(17:20)==r(17)) \u0026\u0026 all(r(21:24)==r(21))\r\n   solve_vec(solve_vec\u003e18)=[]; % \r\n   lsolve=length(solve_vec);\r\n   sum_solve=sum_solve+lsolve;\r\n   min_solve=min(min_solve,lsolve);\r\n   max_solve=max(max_solve,lsolve);\r\n   asolve=floor(sum_solve/zcnt);\r\n   fprintf('Cube Solved Moves=%i  Avg Moves=%i min=%i  max=%i\\n',lsolve,asolve,min_solve,max_solve)\r\n  else % Deug info\r\n   fprintf('\\n\\nCube NOT Solved???\\n\\n') \r\n   fprintf('%i ',r); % Current ending data\r\n   fprintf('\\n')\r\n   fprintf('%i ',r_reset); % Starting Cube\r\n   view3D \r\n   pause(1) % Big Long pause\r\n  end\r\n  \r\nend % Games Loop\r\ntoc\r\n\r\n%view3D % appearance of final cube\r\n\r\nfprintf('\\n\\nThank You for Playing\\n\\nPlease come again.\\n')\r\n\r\nend\r\n\r\n\r\n\r\n\r\n\r\n\r\nfunction  movestr=solve_orient_str(r)\r\n% % initialize cube\r\n%  r(1:4)=0;     %Left   0 R\r\n%  r(5:8)=1;     %Up     1 W\r\n%  r(9:12)=2;    %Front  2 B\r\n%  r(13:16)=3;   %Down   3 Y\r\n%  r(17:20)=4;   %Back   4 G\r\n%  r(21:24)=5;   %Right  5 O\r\npersistent m\r\nif isempty(m) % all moves leave possibly valid corners and cross alone\r\n    % w  r  b\r\n m={[ 6  3  9  ''];\r\n    [ 8 11 21  'y'];  \r\n    [ 7 23 20  'y2']; \r\n    [ 5 18  1  'yp'];\r\n    [10  4 13  'x'];\r\n    [14  2 17  'x2'];\r\n    [18  1  5  'xp'];\r\n    [ 4 13 10  'z'];\r\n    [15 22 12  'z2'];\r\n    [21  8 11  'zp'];\r\n    [12 15 22  'zx']; \r\n    [11 21  8  'z2x'];\r\n    [ 9  6  3  'zpx'];\r\n    [ 2 17 14  'ypx'];\r\n    [ 1  5 18  'x2z'];\r\n    [ 3  9  6  'xpz'];\r\n    [22 12 15  'yx'];\r\n    [23 20  7  'xpzp'];\r\n    [24 16 19  'x2zp'];\r\n    [20  7 23  'xpy'];\r\n    [17 14  2  'ypz'];\r\n    [19 24 16  'y2x'];\r\n    [13 10  4  'yx2']; \r\n    [16 19 24  'x2y']}; \r\nend\r\n u=1; % value of top\r\n L=0; % value of left face\r\n f=2; % value of front face\r\n for ptr=1:24\r\n  if r(abs(m{ptr}(1)))==u \u0026\u0026 r(abs(m{ptr}(2)))==L \u0026\u0026 r(abs(m{ptr}(3)))==f, break;end\r\n end\r\n \r\nmovestr=m{ptr}(4:end);\r\nend % solve orient\r\n\r\nfunction move_vec=decode27_movestr_rev001(movestr)\r\n% Active character Inputs: UFDLBRXYZ, GQ are pre-processed\r\n% 1-6 UFDLBR 7-12 U'F;D'L'B'R' 13-18 U2F2D2L2B2R2 19-27 XYZX'Y'Z'X2Y2Z2\r\nmovestr=upper(movestr);\r\nmovestr=strrep(movestr,'''','P'); % simplify further searches\r\n\r\nmovestr=strrep(movestr,'UP',' 7 ');\r\nmovestr=strrep(movestr,'FP',' 8 ');\r\nmovestr=strrep(movestr,'DP',' 9 ');\r\nmovestr=strrep(movestr,'LP',' 10 ');\r\nmovestr=strrep(movestr,'BP',' 11 ');\r\nmovestr=strrep(movestr,'RP',' 12 ');\r\nmovestr=strrep(movestr,'U2',' 13 ');\r\nmovestr=strrep(movestr,'F2',' 14 ');\r\nmovestr=strrep(movestr,'D2',' 15 ');\r\nmovestr=strrep(movestr,'L2',' 16 ');\r\nmovestr=strrep(movestr,'B2',' 17 ');\r\nmovestr=strrep(movestr,'R2',' 18 ');\r\nmovestr=strrep(movestr,'U',' 1 ');\r\nmovestr=strrep(movestr,'F',' 2 ');\r\nmovestr=strrep(movestr,'D',' 3 ');\r\nmovestr=strrep(movestr,'L',' 4 ');\r\nmovestr=strrep(movestr,'B',' 5 ');\r\nmovestr=strrep(movestr,'R',' 6 ');\r\nmovestr=strrep(movestr,'XP',' 22 ');\r\nmovestr=strrep(movestr,'YP',' 23 ');\r\nmovestr=strrep(movestr,'ZP',' 24 ');\r\nmovestr=strrep(movestr,'X2',' 25 ');\r\nmovestr=strrep(movestr,'Y2',' 26 ');\r\nmovestr=strrep(movestr,'Z2',' 27 ');\r\nmovestr=strrep(movestr,'X',' 19 ');\r\nmovestr=strrep(movestr,'Y',' 20 ');\r\nmovestr=strrep(movestr,'Z',' 21 ');\r\n\r\nmove_vec=str2num(movestr);\r\n\r\nend % move_vec\r\n\r\nfunction view3D\r\n global pmap plate zCmap r\r\n  hold on;\r\n  for i=1:24\r\n    idx=pmap(i);\r\n    fill3(plate(i,1:4),plate(i,5:8),plate(i,9:12),zCmap(r(idx)+2,:),'LineWidth',2)  \r\n  end\r\n  hold off\r\n\r\nend\r\n\r\nfunction [pmap plate]=cube_faces()\r\n%global pmap plate\r\n% Sequence that cube faces are filled   \r\n  pmap=[ 2  4     1  3          ...\r\n        10 12     9 11          ...\r\n        24 22    23 21          ...\r\n        17 19    18 20          ...\r\n         5  7     6  8          ...\r\n        14 16    13 15          ];\r\n plate=zeros(54,12);\r\n % Could optimize creation or load from mat\r\n % Four 3D corners x1 x2 x3 x4 y1 y2 y3 y4 z1 z2 z3 z4\r\n plate(1,:)=[0 1 1 0 0 0 0 0 0 0 1 1]; \r\n plate(2,:)=[1 2 2 1 0 0 0 0 0 0 1 1]; \r\n plate(3,:)=[0 1 1 0 0 0 0 0 1 1 2 2]; \r\n plate(4,:)=[1 2 2 1 0 0 0 0 1 1 2 2]; \r\n \r\n plate(5,:)=[2 2 2 2 0 1 1 0 0 0 1 1];\r\n plate(6,:)=[2 2 2 2 1 2 2 1 0 0 1 1];\r\n plate(7,:)=[2 2 2 2 0 1 1 0 1 1 2 2];\r\n plate(8,:)=[2 2 2 2 1 2 2 1 1 1 2 2];\r\n \r\n plate(9:12,:)=plate(1:4,:);\r\n plate(9:12,5:8)=repmat(2,4,4);\r\n \r\n plate(13:16,:)=plate(5:8,:);\r\n plate(13:16,1:4)=zeros(4,4); %repmat(0,4,4); \r\n \r\n plate(17,:)=[0 1 1 0 0 0 1 1 2 2 2 2]; \r\n plate(18,:)=[0 1 1 0 1 1 2 2 2 2 2 2]; \r\n plate(19,:)=[1 2 2 1 0 0 1 1 2 2 2 2]; \r\n plate(20,:)=[1 2 2 1 1 1 2 2 2 2 2 2];\r\n\r\n plate(21:24,:)=plate(17:20,:);\r\n plate(21:24,9:12)=zeros(4,4); %repmat(0,4,4);  %\r\n  \r\nend\r\n\r\nfunction r=rubik_rot_mini(mov,r)\r\n%mov is 1:27;  1-6 UFDLBR 7-12 U'F;D'L'B'R' 13-18 U2F2D2L2B2R2 \r\n%             19-27 XYZ X'Y'Z' X2Y2Z2  \r\n% X cube-R, Y cube-U,  Z cube-F\r\n%\r\n% r is a 24 element row vector\r\n% r output is a single row vector \r\n%\r\n% vector mov\r\n% r output is array of length(mov) x 24\r\n%\r\n% Perform Rubik Cube face rotations and cube rotations\r\n% L 1:4 U 5:8 F 9:12 D 13:16 B 17:20 R 21:24 \r\n% \r\npersistent vf\r\nif isempty(vf) %\r\nvf=[ 9  2  11  4  6   8   5   7 21  10   23  12 13  14  15  16 17   3   19   1 20  22   18  24 ; \r\n     1  2  13 15  5   4   7   3 10  12    9  11 22  14  21  16 17  18   19  20  6   8   23  24 ;\r\n     1 19   3 17  5   6   7   8  9   2   11   4 14  16  13  15 24  18   22  20 21  10   23  12 ;\r\n     2  4   1  3 17  18   7   8  5   6   11  12  9  10  15  16 13  14   19  20 21  22   23  24 ;\r\n     7  5   3  4 23   6  24   8  9  10   11  12 13   1  15   2 18  20   17  19 21  22   16  14 ;\r\n     1  2   3  4  5   6  11  12  9  10   15  16 13  14  19  20 17  18    7   8 22  24   21  23 ;\r\n    20  2  18  4  7   5   8   6  1  10    3  12 13  14  15  16 17  23   19  21  9  22   11  24 ;\r\n     1  2   8  6  5  21   7  22 11   9   12  10  3  14   4  16 17  18   19  20 15  13   23  24 ;\r\n     1 10   3 12  5   6   7   8  9  22   11  24 15  13  16  14  4  18    2  20 21  19   23  17 ;\r\n     3  1   4  2  9  10   7   8 13  14   11  12 17  18  15  16  5   6   19  20 21  22   23  24 ;\r\n    14 16   3  4  2   6   1   8  9  10   11  12 13  24  15  23 19  17   20  18 21  22    5   7 ;\r\n     1  2   3  4  5   6  19  20  9  10    7   8 13  14  11  12 17  18   15  16 23  21   24  22 ;\r\n    21  2  23  4  8   7   6   5 20  10   18  12 13  14  15  16 17  11   19   9  1  22    3  24 ;\r\n     1  2  22 21  5  15   7  13 12  11   10   9  8  14   6  16 17  18   19  20  4   3   23  24 ;\r\n     1 22   3 24  5   6   7   8  9  19   11  17 16  15  14  13 12  18   10  20 21   2   23   4 ;\r\n     4  3   2  1 13  14   7   8 17  18   11  12  5   6  15  16  9  10   19  20 21  22   23  24 ;\r\n    24 23   3  4 16   6  14   8  9  10   11  12 13   7  15   5 20  19   18  17 21  22    2   1 ;\r\n     1  2   3  4  5   6  15  16  9  10   19  20 13  14   7   8 17  18   11  12 24  23   22  21 ;\r\n     3  1   4  2  9  10  11  12 13  14   15  16 17  18  19  20  5   6    7   8 22  24   21  23 ;\r\n     9 10  11 12  6   8   5   7 21  22   23  24 15  13  16  14  4   3    2   1 20  19   18  17 ;\r\n    14 16  13 15  2   4   1   3 10  12    9  11 22  24  21  23 19  17   20  18  6   8    5   7 ;\r\n     2  4   1  3 17  18  19  20  5   6    7   8  9  10  11  12 13  14   15  16 23  21   24  22 ;\r\n    20 19  18 17  7   5   8   6  1   2    3   4 14  16  13  15 24  23   22  21  9  10   11  12 ;\r\n     7  5   8  6 23  21  24  22 11   9   12  10  3   1   4   2 18  20   17  19 15  13   16  14 ;\r\n     4  3   2  1 13  14  15  16 17  18   19  20  5   6   7   8  9  10   11  12 24  23   22  21 ;\r\n    21 22  23 24  8   7   6   5 20  19   18  17 16  15  14  13 12  11   10   9  1   2    3   4 ; \r\n    24 23  22 21 16  15  14  13 12  11   10   9  8   7   6   5 20  19   18  17  4   3    2   1 ];\r\nend\r\n\r\nr=r(vf(mov,:));\r\nend\r\n\r\n\r\n\r\n%}\r\n\r\n\r\n","test_suite":"%%\r\nfeval(@assignin,'caller','score',0);\r\n%%\r\nvf=[9 2 11 4 6 8 5 7 21 10 23 12 13 14 15 16 17 3 19 1 20 22 18 24 ; \r\n    1 2 13 15 5 4 7 3 10 12 9 11 22 14 21 16 17 18 19 20 6 8 23 24 ;\r\n    1 19 3 17 5 6 7 8 9 2 11 4 14 16 13 15 24 18 22 20 21 10 23 12 ;\r\n    2 4 1 3 17 18 7 8 5 6 11 12 9 10 15 16 13 14 19 20 21 22 23 24 ;\r\n    7 5 3 4 23 6 24 8 9 10 11 12 13 1 15 2 18 20 17 19 21 22 16 14 ;\r\n    1 2 3 4 5 6 11 12 9 10 15 16 13 14 19 20 17 18 7 8 22 24 21 23 ;\r\n    20 2 18 4 7 5 8 6 1 10 3 12 13 14 15 16 17 23 19 21 9 22 11 24 ;\r\n    1 2 8 6 5 21 7 22 11 9 12 10 3 14 4 16 17 18 19 20 15 13 23 24 ;\r\n    1 10 3 12 5 6 7 8 9 22 11 24 15 13 16 14 4 18 2 20 21 19 23 17 ;\r\n    3 1 4 2 9 10 7 8 13 14 11 12 17 18 15 16 5 6 19 20 21 22 23 24 ;\r\n    14 16 3 4 2 6 1 8 9 10 11 12 13 24 15 23 19 17 20 18 21 22 5 7 ;\r\n    1 2 3 4 5 6 19 20 9 10 7 8 13 14 11 12 17 18 15 16 23 21 24 22 ;\r\n    21 2 23 4 8 7 6 5 20 10 18 12 13 14 15 16 17 11 19 9 1 22 3 24 ;\r\n    1 2 22 21 5 15 7 13 12 11 10 9 8 14 6 16 17 18 19 20 4 3 23 24 ;\r\n    1 22 3 24 5 6 7 8 9 19 11 17 16 15 14 13 12 18 10 20 21 2 23 4 ;\r\n    4 3 2 1 13 14 7 8 17 18 11 12 5 6 15 16 9 10 19 20 21 22 23 24 ;\r\n    24 23 3 4 16 6 14 8 9 10 11 12 13 7 15 5 20 19 18 17 21 22 2 1 ;\r\n    1 2 3 4 5 6 15 16 9 10 19 20 13 14 7 8 17 18 11 12 24 23 22 21 ;\r\n    3 1 4 2 9 10 11 12 13 14 15 16 17 18 19 20 5 6 7 8 22 24 21 23 ;\r\n    9 10 11 12 6 8 5 7 21 22 23 24 15 13 16 14 4 3 2 1 20 19 18 17 ;\r\n    14 16 13 15 2 4 1 3 10 12 9 11 22 24 21 23 19 17 20 18 6 8 5 7 ;\r\n    2 4 1 3 17 18 19 20 5 6 7 8 9 10 11 12 13 14 15 16 23 21 24 22 ;\r\n    20 19 18 17 7 5 8 6 1 2 3 4 14 16 13 15 24 23 22 21 9 10 11 12 ;\r\n    7 5 8 6 23 21 24 22 11 9 12 10 3 1 4 2 18 20 17 19 15 13 16 14 ;\r\n    4 3 2 1 13 14 15 16 17 18 19 20 5 6 7 8 9 10 11 12 24 23 22 21 ;\r\n    21 22 23 24 8 7 6 5 20 19 18 17 16 15 14 13 12 11 10 9 1 2 3 4 ; \r\n    24 23 22 21 16 15 14 13 12 11 10 9 8 7 6 5 20 19 18 17 4 3 2 1 ];\r\n\r\n%r=r(vf(mov,:));  % Standard move, r=rubik_rot_min(mov,r);\r\n\r\nPass=1;\r\nr_fail=0;\r\n% Execute 500 cubes and verify completeness and count moves\r\n % initialize cube\r\n r(1:4)=0;     %Left   0 R\r\n r(5:8)=1;     %Up     1 W\r\n r(9:12)=2;    %Front  2 B\r\n r(13:16)=3;   %Down   3 Y\r\n r(17:20)=4;   %Back   4 G\r\n r(21:24)=5;   %Right  5 O\r\n rnorm=r;\r\n\r\nzcnt=0;\r\nsum_solve=0;\r\nmin_solve=1000;\r\nmax_solve=0;\r\nasolve=199;\r\nmix=40;\r\n\r\ntic\r\n\r\nwhile zcnt\u003c500\r\n zcnt=zcnt+1;\r\n  r=rnorm;\r\n % Initial mix\r\n mov=randi(18,[mix,1]);\r\n for i=1:length(mov)  % Ignoring Move Undos since mix=40\r\n  %r=rubik_rot(mov(i),r);\r\n   r=r(vf(mov(i),:));\r\n end\r\n\r\n r_reset=r; % Used in assert\r\n\r\n solve_vec=rubik_solve_mini(r);\r\n\r\n for i=1:length(solve_vec) \r\n  %r=rubik_rot(solve_vec(i),r);\r\n  r=r(vf(solve_vec(i),:));\r\n end\r\n\r\n  if all(r(1:4)==r(4)) \u0026\u0026 all(r(5:8)==r(8))  \u0026\u0026 all(r(9:12)==r(9)) \u0026\u0026 ...\r\n     all(r(13:16)==r(13))  \u0026\u0026 all(r(17:20)==r(17)) \u0026\u0026 all(r(21:24)==r(21))\r\n   solve_vec(solve_vec\u003e18)=[]; %   \r\n   lsolve=length(solve_vec);\r\n   sum_solve=sum_solve+lsolve;\r\n   min_solve=min(min_solve,lsolve);\r\n   max_solve=max(max_solve,lsolve);\r\n   asolve=floor(sum_solve/zcnt);\r\n %  fprintf('Cube Solved Moves=%i  Avg Moves=%i min=%i  max=%i\\n',lsolve,asolve,min_solve,max_solve)\r\n  else % Deug info\r\n   Pass=0;\r\n   r_fail=r_reset;\r\n  % fprintf('\\n\\nCube NOT Solved???\\n\\n') \r\n  % fprintf('%i ',r); % Current ending data\r\n  % fprintf('\\n')\r\n  % fprintf('%i ',r_reset); % Starting Cube\r\n  end\r\n\r\nend % while of cubes\r\ntoc\r\n\r\nassert(isequal(Pass,1),sprintf('%i ',r_fail)); % Output Non-Solved Cube Start\r\nif Pass\r\n feval(@assignin,'caller','score',min(100,floor(asolve)));\r\nend\r\n\r\nfprintf('Moves: Avg %i   Min %i   Max %i\\n',asolve,min_solve,max_solve)","published":true,"deleted":false,"likes_count":1,"comments_count":0,"created_by":3097,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":2,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2012-09-04T03:44:49.000Z","updated_at":"2025-04-22T03:20:12.000Z","published_at":"2012-09-04T05:01:52.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/image\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/media/image1.png\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/image\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/media/image2.png\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/image\",\"targetMode\":\"\",\"relationshipId\":\"rId3\",\"target\":\"/media/image1.gif\"}],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe Challenge is to Solve a thoroughly scrambled Mini-Rubik's Cube(2x2x2).\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe Performance metric is average number of moves for solving 500 cubes.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eA standard Mini-Rubik's Cube is shown in 3-D and also unfolded to identify the specific Tile-face/Vector numbering.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe faces are White-Up / Red-Left / Blue-Front / Orange-Right / Yellow-Down / Green-Back (ULFRDB)\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eMoves are denoted as F for clockwise rotation of the Front face. F'(or FP) is CCW and F2 is F twice. The provided function r_new=rubick_rot_mini(mov,r) implements moves 1-18: UFDLBRU'F'D'L'B'R'U2F2D2L2B2R2.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:customXml w:element=\\\"image\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"height\\\" w:val=\\\"-1\\\"/\u003e\u003cw:attr w:name=\\\"width\\\" w:val=\\\"-1\\\"/\u003e\u003cw:attr w:name=\\\"relationshipId\\\" w:val=\\\"rId1\\\"/\u003e\u003c/w:customXmlPr\u003e\u003c/w:customXml\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:customXml w:element=\\\"image\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"height\\\" w:val=\\\"-1\\\"/\u003e\u003cw:attr w:name=\\\"width\\\" w:val=\\\"-1\\\"/\u003e\u003cw:attr w:name=\\\"relationshipId\\\" w:val=\\\"rId2\\\"/\u003e\u003c/w:customXmlPr\u003e\u003c/w:customXml\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:customXml w:element=\\\"image\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"height\\\" w:val=\\\"-1\\\"/\u003e\u003cw:attr w:name=\\\"width\\\" w:val=\\\"-1\\\"/\u003e\u003cw:attr w:name=\\\"relationshipId\\\" w:val=\\\"rId3\\\"/\u003e\u003c/w:customXmlPr\u003e\u003c/w:customXml\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[Input: (rubik)\\n\\nrubik: row vector of size 24\\n(The cube started [L=0,U=1,F=2,D=3,B=4,R=5] and then receives forty face moves.\\n\\nOutput: move_vec (Numeric of moves to solve)\\n move_vec:values 1:27 for UFDLBR U'F'D'L'B'R' U2F2D2L2B2R2 XYZX'Y'Z'X2Y2Z2]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eExample:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eIf the cube was randomized by [1 9] UD', one solution is [3 7] which are the complements in reverse order.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eScoring is average face moves for 500 cubes\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eCube Moves X, Y, and Z do not constitute a move but are needed in the vector\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eA string to numeric value function is provided in the template\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eVerifications will be by executing your move vector against the provided Rubik and counting number of face moves.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe function rubik_rot_mini(mov,r) is provided in the template.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe Function Template Contains a 3D Cube Viewer and the first step in solving is at the bottom in a comment block.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003cw:hyperlink w:docLocation=\\\"http://kociemba.org/cube.htm\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eCube Theory: 20-moves Any Cube\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003cw:hyperlink w:docLocation=\\\"http://peter.stillhq.com/jasmine/rubikscubesolution.html\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eGeneral Cube Info and Middle Layer\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003cw:hyperlink w:docLocation=\\\"http://www.speedcubing.com/final_layer_print.html\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eSpeedCube Bottom Sequences\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e(Note: Mini-Cube can use the full cube moves and ignore edge effects)\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eComing Soon: The Mini-Cube (2x2x2): Full Random - Eleven or Less Moves\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"},{\"partUri\":\"/media/image1.png\",\"contentType\":\"image/png\",\"content\":\"data:image/png;base64,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\"},{\"partUri\":\"/media/image2.png\",\"contentType\":\"image/png\",\"content\":\"data:image/png;base64,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\"},{\"partUri\":\"/media/image1.gif\",\"contentType\":\"image/gif\",\"content\":\"data:image/gif;base64,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\"}]}"},{"id":937,"title":"Rubik's Mini Cube: Solve Randomized Cube in 11 Moves or Less; Score is by Time (msec)","description":"The Challenge is to Near or Optimally Solve a thoroughly scrambled Mini-Rubik's Cube(2x2x2).\r\n\r\nAny Mini-Cube can be solved in 11 or fewer Face Moves. There are only 3,674,160 unique cube positions, with only 2344 requiring the fulll 11 moves. Cube moves do not count.\r\n\r\nThe Performance metric is cumulative Time to Solve 500 cubes (msec).\r\n\r\nA standard Mini-Rubik's Cube is shown in 3-D and also unfolded to identify the specific Tile-face/Vector numbering.\r\n\r\nThe faces are White-Up / Red-Left / Blue-Front / Orange-Right / Yellow-Down / Green-Back (ULFRDB)\r\n\r\nMoves are denoted as F for clockwise rotation of the Front face. F'(or FP) is CCW and F2 is F twice.  The provided function r_new=rubick_rot_mini(mov,r) implements moves 1-18: UFDLBRU'F'D'L'B'R'U2F2D2L2B2R2.\r\n\r\n\r\n\r\n\r\n\u003c\u003chttps://sites.google.com/site/razapor/matlab_cody/minicube2.png\u003e\u003e\r\n\r\n\u003c\u003chttps://sites.google.com/site/razapor/matlab_cody/miniCube_Map24_200.png\u003e\u003e\r\n\r\n\u003c\u003chttp://mathworks.com/matlabcentral/images/surf.gif\u003e\u003e\r\n\r\n\r\n  \r\n  \r\n  Input: (rubik)\r\n  \r\n  rubik: row vector of size 24\r\n  (The cube started [L=0,U=1,F=2,D=3,B=4,R=5] and then receives forty face moves.\r\n\r\n  Output: move_vec (Numeric of moves to solve)\r\n   move_vec:values 1:27 for UFDLBR U'F'D'L'B'R' U2F2D2L2B2R2 XYZX'Y'Z'X2Y2Z2\r\n\r\n* Example:\r\n* If the cube was randomized by [1 9] UD', one solution is [3 7]  which are the complements in reverse order. \r\n* Scoring is Time in msec to solve 500 cubes\r\n* Cube Moves X, Y, and Z do not constitute a move but are needed in the vector \r\n* A string to numeric value function is provided in the template\r\n* Verifications will be by executing your move vector against the provided Rubik and counting number of face moves.\r\n\r\nThe function rubik_rot_mini(mov,r) is provided in the template. Other functions are provided to re-orient the cube in Cody Challenge 931, Rubik's Mini-Cube.\r\n\r\n\r\nThe Challenge \u003chttp://www.mathworks.com/matlabcentral/cody/problems/931-rubik-s-mini-cube-solve-randomized-mini-cube-score-moves.html Challenge 931 Rubik's Mini-Cube\u003e contains a 3D Mini-Cube Viewer for program development.\r\n\r\n\r\n* \r\n* \u003chttp://kociemba.org/cube.htm Cube Theory: 20-moves Any Cube\u003e \r\n* \u003chttp://peter.stillhq.com/jasmine/rubikscubesolution.html General Cube Info and Middle Layer\u003e\r\n* \u003chttp://www.speedcubing.com/final_layer_print.html SpeedCube Bottom Sequences\u003e\r\n* The site \u003chttp://www.speedcubing.com/CubeSolver/MiniCubeSolver.html MiniCube Solver\u003e claims an outstanding 10 minutes to solve a randomized Mini-Cube. Matlab can achieve any Mini-Cube solution in \u003c 497 usec, independent of moves on an i5/16GB machine.\r\n\r\n\r\n(Note: Mini-Cube can use the full cube moves and ignore edge effects)\r\n\r\nComing Soon: Matlab Tetris\r\n","description_html":"\u003cdiv style = \"text-align: start; line-height: 20.4333px; min-height: 0px; white-space: normal; color: rgb(0, 0, 0); font-family: Menlo, Monaco, Consolas, monospace; font-style: normal; font-size: 14px; font-weight: 400; text-decoration: rgb(0, 0, 0); white-space: normal; \"\u003e\u003cdiv style=\"block-size: 1316.98px; display: block; min-width: 0px; padding-block-start: 0px; padding-top: 0px; perspective-origin: 407px 658.5px; transform-origin: 407px 658.5px; vertical-align: baseline; \"\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 294.65px 7.91667px; transform-origin: 294.65px 7.91667px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThe Challenge is to Near or Optimally Solve a thoroughly scrambled Mini-Rubik's Cube(2x2x2).\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 42px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 21px; text-align: left; transform-origin: 384px 21px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 377.2px 7.91667px; transform-origin: 377.2px 7.91667px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eAny Mini-Cube can be solved in 11 or fewer Face Moves. There are only 3,674,160 unique cube positions, with only 2344 requiring the fulll 11 moves. Cube moves do not count.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 221.45px 7.91667px; transform-origin: 221.45px 7.91667px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThe Performance metric is cumulative Time to Solve 500 cubes (msec).\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 355.467px 7.91667px; transform-origin: 355.467px 7.91667px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eA standard Mini-Rubik's Cube is shown in 3-D and also unfolded to identify the specific Tile-face/Vector numbering.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 316.733px 7.91667px; transform-origin: 316.733px 7.91667px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThe faces are White-Up / Red-Left / Blue-Front / Orange-Right / Yellow-Down / Green-Back (ULFRDB)\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 42px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 21px; text-align: left; transform-origin: 384px 21px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 380.533px 7.91667px; transform-origin: 380.533px 7.91667px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eMoves are denoted as F for clockwise rotation of the Front face. F'(or FP) is CCW and F2 is F twice. The provided function r_new=rubick_rot_mini(mov,r) implements moves 1-18: UFDLBRU'F'D'L'B'R'U2F2D2L2B2R2.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 138.917px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 69.4667px; text-align: center; transform-origin: 384px 69.4667px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cimg class=\"imageNode\" style=\"vertical-align: baseline\" src=\"data:image/png;base64,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\" data-image-state=\"image-loaded\"\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 242.917px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 121.467px; text-align: center; transform-origin: 384px 121.467px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cimg class=\"imageNode\" style=\"vertical-align: baseline\" src=\"data:image/png;base64,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\" data-image-state=\"image-loaded\"\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 113.917px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 56.9667px; text-align: center; transform-origin: 384px 56.9667px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cimg class=\"imageNode\" style=\"vertical-align: baseline\" src=\"data:image/gif;base64,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\" data-image-state=\"image-loaded\"\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgb(247, 247, 247); block-size: 143.033px; border-bottom-left-radius: 4px; border-bottom-right-radius: 4px; border-end-end-radius: 4px; border-end-start-radius: 4px; border-start-end-radius: 4px; border-start-start-radius: 4px; border-top-left-radius: 4px; border-top-right-radius: 4px; margin-block-end: 10px; margin-block-start: 10px; margin-bottom: 10px; margin-inline-end: 3px; margin-inline-start: 3px; margin-left: 3px; margin-right: 3px; margin-top: 10px; perspective-origin: 404px 71.5167px; transform-origin: 404px 71.5167px; margin-left: 3px; margin-top: 10px; margin-bottom: 10px; margin-right: 3px; \"\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 0.833333px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 0.833333px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 0.833333px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 0.833333px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 404px 10.2167px; transform-origin: 404px 10.2167px; white-space: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 53.9px 7.91667px; transform-origin: 53.9px 7.91667px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003eInput: (rubik)\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 0.833333px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 0.833333px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 0.833333px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 0.833333px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 404px 10.2167px; transform-origin: 404px 10.2167px; white-space: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 0px 7.91667px; transform-origin: 0px 7.91667px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 0.833333px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 0.833333px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 0.833333px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 0.833333px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 404px 10.2167px; transform-origin: 404px 10.2167px; white-space: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 107.8px 7.91667px; transform-origin: 107.8px 7.91667px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; perspective-origin: 69.3px 7.91667px; transform-origin: 69.3px 7.91667px; \"\u003erubik: row vector \u003c/span\u003e\u003cspan style=\"border-block-end-color: rgb(170, 4, 249); border-block-start-color: rgb(170, 4, 249); border-bottom-color: rgb(170, 4, 249); border-inline-end-color: rgb(170, 4, 249); border-inline-start-color: rgb(170, 4, 249); border-left-color: rgb(170, 4, 249); border-right-color: rgb(170, 4, 249); border-top-color: rgb(170, 4, 249); caret-color: rgb(170, 4, 249); color: rgb(170, 4, 249); column-rule-color: rgb(170, 4, 249); margin-inline-end: 0px; margin-right: 0px; outline-color: rgb(170, 4, 249); perspective-origin: 38.5px 7.91667px; text-decoration: none; text-decoration-color: rgb(170, 4, 249); text-emphasis-color: rgb(170, 4, 249); transform-origin: 38.5px 7.91667px; \"\u003eof size 24\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 0.833333px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 0.833333px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 0.833333px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 0.833333px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 404px 10.2167px; transform-origin: 404px 10.2167px; white-space: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 304.15px 7.91667px; transform-origin: 304.15px 7.91667px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e(The cube started [L=0,U=1,F=2,D=3,B=4,R=5] and then receives forty face moves.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 0.833333px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 0.833333px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 0.833333px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 0.833333px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 404px 10.2167px; transform-origin: 404px 10.2167px; white-space: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 0px 7.91667px; transform-origin: 0px 7.91667px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 0.833333px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 0.833333px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 0.833333px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 0.833333px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 404px 10.2167px; transform-origin: 404px 10.2167px; white-space: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 169.4px 7.91667px; transform-origin: 169.4px 7.91667px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003eOutput: move_vec (Numeric of moves to solve)\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 0.833333px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 0.833333px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 0.833333px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 0.833333px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 404px 10.2167px; transform-origin: 404px 10.2167px; white-space: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 284.9px 7.91667px; transform-origin: 284.9px 7.91667px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; perspective-origin: 84.7px 7.91667px; transform-origin: 84.7px 7.91667px; \"\u003e move_vec:values 1:27 \u003c/span\u003e\u003cspan style=\"border-block-end-color: rgb(14, 0, 255); border-block-start-color: rgb(14, 0, 255); border-bottom-color: rgb(14, 0, 255); border-inline-end-color: rgb(14, 0, 255); border-inline-start-color: rgb(14, 0, 255); border-left-color: rgb(14, 0, 255); border-right-color: rgb(14, 0, 255); border-top-color: rgb(14, 0, 255); caret-color: rgb(14, 0, 255); color: rgb(14, 0, 255); column-rule-color: rgb(14, 0, 255); margin-inline-end: 0px; margin-right: 0px; outline-color: rgb(14, 0, 255); perspective-origin: 15.4px 7.91667px; text-decoration: none; text-decoration-color: rgb(14, 0, 255); text-emphasis-color: rgb(14, 0, 255); transform-origin: 15.4px 7.91667px; \"\u003efor \u003c/span\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; perspective-origin: 127.05px 7.91667px; transform-origin: 127.05px 7.91667px; \"\u003eUFDLBR U'F'D'L'B'R' U2F2D2L2B2R2 \u003c/span\u003e\u003cspan style=\"border-block-end-color: rgb(196, 0, 0); border-block-start-color: rgb(196, 0, 0); border-bottom-color: rgb(196, 0, 0); border-inline-end-color: rgb(196, 0, 0); border-inline-start-color: rgb(196, 0, 0); border-left-color: rgb(196, 0, 0); border-right-color: rgb(196, 0, 0); border-top-color: rgb(196, 0, 0); caret-color: rgb(196, 0, 0); color: rgb(196, 0, 0); column-rule-color: rgb(196, 0, 0); margin-inline-end: 0px; margin-right: 0px; outline-color: rgb(196, 0, 0); perspective-origin: 57.75px 7.91667px; text-decoration: none; text-decoration-color: rgb(196, 0, 0); text-emphasis-color: rgb(196, 0, 0); transform-origin: 57.75px 7.91667px; \"\u003eXYZX'Y'Z'X2Y2Z2\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003c/div\u003e\u003cul style=\"block-size: 122.6px; counter-reset: list-item 0; font-family: Helvetica, Arial, sans-serif; list-style-type: square; margin-block-end: 20px; margin-block-start: 10px; margin-bottom: 20px; margin-top: 10px; perspective-origin: 391px 61.3px; transform-origin: 391px 61.3px; margin-top: 10px; margin-bottom: 20px; \"\u003e\u003cli style=\"block-size: 20.4333px; counter-reset: none; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 363px 10.2167px; text-align: left; transform-origin: 363px 10.2167px; white-space: pre-wrap; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 29.1833px 7.91667px; transform-origin: 29.1833px 7.91667px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eExample:\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"block-size: 20.4333px; counter-reset: none; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 363px 10.2167px; text-align: left; transform-origin: 363px 10.2167px; white-space: pre-wrap; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 327.667px 7.91667px; transform-origin: 327.667px 7.91667px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eIf the cube was randomized by [1 9] UD', one solution is [3 7] which are the complements in reverse order.\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"block-size: 20.4333px; counter-reset: none; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 363px 10.2167px; text-align: left; transform-origin: 363px 10.2167px; white-space: pre-wrap; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 134.333px 7.91667px; transform-origin: 134.333px 7.91667px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eScoring is Time in msec to solve 500 cubes\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"block-size: 20.4333px; counter-reset: none; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 363px 10.2167px; text-align: left; transform-origin: 363px 10.2167px; white-space: pre-wrap; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 242.583px 7.91667px; transform-origin: 242.583px 7.91667px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eCube Moves X, Y, and Z do not constitute a move but are needed in the vector\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"block-size: 20.4333px; counter-reset: none; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 363px 10.2167px; text-align: left; transform-origin: 363px 10.2167px; white-space: pre-wrap; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 187.1px 7.91667px; transform-origin: 187.1px 7.91667px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eA string to numeric value function is provided in the template\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"block-size: 20.4333px; counter-reset: none; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 363px 10.2167px; text-align: left; transform-origin: 363px 10.2167px; white-space: pre-wrap; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 355.933px 7.91667px; transform-origin: 355.933px 7.91667px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eVerifications will be by executing your move vector against the provided Rubik and counting number of face moves.\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003c/ul\u003e\u003cdiv style=\"block-size: 42px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 21px; text-align: left; transform-origin: 384px 21px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 374.067px 7.91667px; transform-origin: 374.067px 7.91667px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThe function rubik_rot_mini(mov,r) is provided in the template. Other functions are provided to re-orient the cube in Cody Challenge 931, Rubik's Mini-Cube.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 45.5333px 7.91667px; transform-origin: 45.5333px 7.91667px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThe Challenge\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 1.95px 7.91667px; transform-origin: 1.95px 7.91667px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e \u003c/span\u003e\u003c/span\u003e\u003ca target='_blank' href = \"http://www.mathworks.com/matlabcentral/cody/problems/931-rubik-s-mini-cube-solve-randomized-mini-cube-score-moves.html\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"\"\u003eChallenge 931 Rubik's Mini-Cube\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 183.883px 7.91667px; transform-origin: 183.883px 7.91667px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e contains a 3D Mini-Cube Viewer for program development.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cul style=\"block-size: 122.6px; counter-reset: list-item 0; font-family: Helvetica, Arial, sans-serif; list-style-type: square; margin-block-end: 20px; margin-block-start: 10px; margin-bottom: 20px; margin-top: 10px; perspective-origin: 391px 61.3px; transform-origin: 391px 61.3px; margin-top: 10px; margin-bottom: 20px; \"\u003e\u003cli style=\"block-size: 20.4333px; counter-reset: none; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 363px 10.2167px; text-align: left; transform-origin: 363px 10.2167px; white-space: pre-wrap; margin-left: 56px; \"\u003e\u003c/li\u003e\u003cli style=\"block-size: 20.4333px; counter-reset: none; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 363px 10.2167px; text-align: left; transform-origin: 363px 10.2167px; white-space: pre-wrap; margin-left: 56px; \"\u003e\u003ca target='_blank' href = \"http://kociemba.org/cube.htm\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"\"\u003eCube Theory: 20-moves Any Cube\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003c/li\u003e\u003cli style=\"block-size: 20.4333px; counter-reset: none; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 363px 10.2167px; text-align: left; transform-origin: 363px 10.2167px; white-space: pre-wrap; margin-left: 56px; \"\u003e\u003ca target='_blank' href = \"http://peter.stillhq.com/jasmine/rubikscubesolution.html\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"\"\u003eGeneral Cube Info and Middle Layer\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003c/li\u003e\u003cli style=\"block-size: 20.4333px; counter-reset: none; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 363px 10.2167px; text-align: left; transform-origin: 363px 10.2167px; white-space: pre-wrap; margin-left: 56px; \"\u003e\u003ca target='_blank' href = \"http://www.speedcubing.com/final_layer_print.html\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"\"\u003eSpeedCube Bottom Sequences\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003c/li\u003e\u003cli style=\"block-size: 40.8667px; counter-reset: none; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 363px 20.4333px; text-align: left; transform-origin: 363px 20.4333px; white-space: pre-wrap; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 24.9px 7.91667px; transform-origin: 24.9px 7.91667px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThe site\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 1.95px 7.91667px; transform-origin: 1.95px 7.91667px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e \u003c/span\u003e\u003c/span\u003e\u003ca target='_blank' href = \"http://www.speedcubing.com/CubeSolver/MiniCubeSolver.html\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"\"\u003eMiniCube Solver\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 276.2px 7.91667px; transform-origin: 276.2px 7.91667px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e claims an outstanding 10 minutes to solve a randomized Mini-Cube. Matlab can achieve any Mini-Cube solution in \u0026lt; 497 usec, independent of moves on an i5/16GB machine.\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003c/ul\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 218.883px 7.91667px; transform-origin: 218.883px 7.91667px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e(Note: Mini-Cube can use the full cube moves and ignore edge effects)\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 85.9667px 7.91667px; transform-origin: 85.9667px 7.91667px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eComing Soon: Matlab Tetris\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e","function_template":"function solve_vec = rubik_solve_mini(r)\r\n% Expect Numeric representation of moves (1:27):\r\n% 1:27 are ufdlbr upfpdplpbprp u2f2d2l2b2r2 xyzxpypzpx2y2z2\r\n solve_vec=[]; \r\n\r\n% One path is to use Challenge 931's, Rubik's Mini Cube, initial Cube re-orientation provided in the template, followed by a solving algorithm that needs only RDB type moves\r\n% Loading an external data file is one method. First solve is not timed.\r\nend\r\n\r\nfunction r=rubik_rot_mini(mov,r)\r\n%mov is 1:27;  1-6 UFDLBR 7-12 U'F;D'L'B'R' 13-18 U2F2D2L2B2R2 \r\n%             19-27 XYZ X'Y'Z' X2Y2Z2  \r\n% X cube-R, Y cube-U,  Z cube-F\r\n%\r\n% r is a 24 element row vector\r\n% r output is a single row vector \r\n%\r\n% vector mov\r\n% r output is array of length(mov) x 24\r\n%\r\n% Perform Rubik Cube face rotations and cube rotations\r\n% L 1:4 U 5:8 F 9:12 D 13:16 B 17:20 R 21:24 \r\n% \r\npersistent vf\r\nif isempty(vf) %\r\nvf=[9 2 11 4 6 8 5 7 21 10 23 12 13 14 15 16 17 3 19 1 20 22 18 24 ; \r\n    1 2 13 15 5 4 7 3 10 12 9 11 22 14 21 16 17 18 19 20 6 8 23 24 ;\r\n    1 19 3 17 5 6 7 8 9 2 11 4 14 16 13 15 24 18 22 20 21 10 23 12 ;\r\n    2 4 1 3 17 18 7 8 5 6 11 12 9 10 15 16 13 14 19 20 21 22 23 24 ;\r\n    7 5 3 4 23 6 24 8 9 10 11 12 13 1 15 2 18 20 17 19 21 22 16 14 ;\r\n    1 2 3 4 5 6 11 12 9 10 15 16 13 14 19 20 17 18 7 8 22 24 21 23 ;\r\n    20 2 18 4 7 5 8 6 1 10 3 12 13 14 15 16 17 23 19 21 9 22 11 24 ;\r\n    1 2 8 6 5 21 7 22 11 9 12 10 3 14 4 16 17 18 19 20 15 13 23 24 ;\r\n    1 10 3 12 5 6 7 8 9 22 11 24 15 13 16 14 4 18 2 20 21 19 23 17 ;\r\n    3 1 4 2 9 10 7 8 13 14 11 12 17 18 15 16 5 6 19 20 21 22 23 24 ;\r\n    14 16 3 4 2 6 1 8 9 10 11 12 13 24 15 23 19 17 20 18 21 22 5 7 ;\r\n    1 2 3 4 5 6 19 20 9 10 7 8 13 14 11 12 17 18 15 16 23 21 24 22 ;\r\n    21 2 23 4 8 7 6 5 20 10 18 12 13 14 15 16 17 11 19 9 1 22 3 24 ;\r\n    1 2 22 21 5 15 7 13 12 11 10 9 8 14 6 16 17 18 19 20 4 3 23 24 ;\r\n    1 22 3 24 5 6 7 8 9 19 11 17 16 15 14 13 12 18 10 20 21 2 23 4 ;\r\n    4 3 2 1 13 14 7 8 17 18 11 12 5 6 15 16 9 10 19 20 21 22 23 24 ;\r\n    24 23 3 4 16 6 14 8 9 10 11 12 13 7 15 5 20 19 18 17 21 22 2 1 ;\r\n    1 2 3 4 5 6 15 16 9 10 19 20 13 14 7 8 17 18 11 12 24 23 22 21 ;\r\n    3 1 4 2 9 10 11 12 13 14 15 16 17 18 19 20 5 6 7 8 22 24 21 23 ;\r\n    9 10 11 12 6 8 5 7 21 22 23 24 15 13 16 14 4 3 2 1 20 19 18 17 ;\r\n    14 16 13 15 2 4 1 3 10 12 9 11 22 24 21 23 19 17 20 18 6 8 5 7 ;\r\n    2 4 1 3 17 18 19 20 5 6 7 8 9 10 11 12 13 14 15 16 23 21 24 22 ;\r\n    20 19 18 17 7 5 8 6 1 2 3 4 14 16 13 15 24 23 22 21 9 10 11 12 ;\r\n    7 5 8 6 23 21 24 22 11 9 12 10 3 1 4 2 18 20 17 19 15 13 16 14 ;\r\n    4 3 2 1 13 14 15 16 17 18 19 20 5 6 7 8 9 10 11 12 24 23 22 21 ;\r\n    21 22 23 24 8 7 6 5 20 19 18 17 16 15 14 13 12 11 10 9 1 2 3 4 ; \r\n    24 23 22 21 16 15 14 13 12 11 10 9 8 7 6 5 20 19 18 17 4 3 2 1 ];\r\nend\r\n\r\nr=r(vf(mov,:));\r\nend\r\n\r\n\r\nfunction move_vec=decode27_movestr_rev001(movestr)\r\n% Active character Inputs: UFDLBRXYZ, GQ are pre-processed\r\n% 1-6 UFDLBR 7-12 U'F;D'L'B'R' 13-18 U2F2D2L2B2R2 19-27 XYZX'Y'Z'X2Y2Z2\r\nmovestr=upper(movestr);\r\nmovestr=strrep(movestr,'''','P'); % simplify further searches\r\n\r\nmovestr=strrep(movestr,'UP',' 7 ');\r\nmovestr=strrep(movestr,'FP',' 8 ');\r\nmovestr=strrep(movestr,'DP',' 9 ');\r\nmovestr=strrep(movestr,'LP',' 10 ');\r\nmovestr=strrep(movestr,'BP',' 11 ');\r\nmovestr=strrep(movestr,'RP',' 12 ');\r\nmovestr=strrep(movestr,'U2',' 13 ');\r\nmovestr=strrep(movestr,'F2',' 14 ');\r\nmovestr=strrep(movestr,'D2',' 15 ');\r\nmovestr=strrep(movestr,'L2',' 16 ');\r\nmovestr=strrep(movestr,'B2',' 17 ');\r\nmovestr=strrep(movestr,'R2',' 18 ');\r\nmovestr=strrep(movestr,'U',' 1 ');\r\nmovestr=strrep(movestr,'F',' 2 ');\r\nmovestr=strrep(movestr,'D',' 3 ');\r\nmovestr=strrep(movestr,'L',' 4 ');\r\nmovestr=strrep(movestr,'B',' 5 ');\r\nmovestr=strrep(movestr,'R',' 6 ');\r\nmovestr=strrep(movestr,'XP',' 22 ');\r\nmovestr=strrep(movestr,'YP',' 23 ');\r\nmovestr=strrep(movestr,'ZP',' 24 ');\r\nmovestr=strrep(movestr,'X2',' 25 ');\r\nmovestr=strrep(movestr,'Y2',' 26 ');\r\nmovestr=strrep(movestr,'Z2',' 27 ');\r\nmovestr=strrep(movestr,'X',' 19 ');\r\nmovestr=strrep(movestr,'Y',' 20 ');\r\nmovestr=strrep(movestr,'Z',' 21 ');\r\n\r\nmove_vec=str2num(movestr);\r\n\r\nend % move_vec","test_suite":"%%\r\nfeval(@assignin,'caller','score',0);\r\n%%\r\nvf=[9 2 11 4 6 8 5 7 21 10 23 12 13 14 15 16 17 3 19 1 20 22 18 24 ; \r\n    1 2 13 15 5 4 7 3 10 12 9 11 22 14 21 16 17 18 19 20 6 8 23 24 ;\r\n    1 19 3 17 5 6 7 8 9 2 11 4 14 16 13 15 24 18 22 20 21 10 23 12 ;\r\n    2 4 1 3 17 18 7 8 5 6 11 12 9 10 15 16 13 14 19 20 21 22 23 24 ;\r\n    7 5 3 4 23 6 24 8 9 10 11 12 13 1 15 2 18 20 17 19 21 22 16 14 ;\r\n    1 2 3 4 5 6 11 12 9 10 15 16 13 14 19 20 17 18 7 8 22 24 21 23 ;\r\n    20 2 18 4 7 5 8 6 1 10 3 12 13 14 15 16 17 23 19 21 9 22 11 24 ;\r\n    1 2 8 6 5 21 7 22 11 9 12 10 3 14 4 16 17 18 19 20 15 13 23 24 ;\r\n    1 10 3 12 5 6 7 8 9 22 11 24 15 13 16 14 4 18 2 20 21 19 23 17 ;\r\n    3 1 4 2 9 10 7 8 13 14 11 12 17 18 15 16 5 6 19 20 21 22 23 24 ;\r\n    14 16 3 4 2 6 1 8 9 10 11 12 13 24 15 23 19 17 20 18 21 22 5 7 ;\r\n    1 2 3 4 5 6 19 20 9 10 7 8 13 14 11 12 17 18 15 16 23 21 24 22 ;\r\n    21 2 23 4 8 7 6 5 20 10 18 12 13 14 15 16 17 11 19 9 1 22 3 24 ;\r\n    1 2 22 21 5 15 7 13 12 11 10 9 8 14 6 16 17 18 19 20 4 3 23 24 ;\r\n    1 22 3 24 5 6 7 8 9 19 11 17 16 15 14 13 12 18 10 20 21 2 23 4 ;\r\n    4 3 2 1 13 14 7 8 17 18 11 12 5 6 15 16 9 10 19 20 21 22 23 24 ;\r\n    24 23 3 4 16 6 14 8 9 10 11 12 13 7 15 5 20 19 18 17 21 22 2 1 ;\r\n    1 2 3 4 5 6 15 16 9 10 19 20 13 14 7 8 17 18 11 12 24 23 22 21 ;\r\n    3 1 4 2 9 10 11 12 13 14 15 16 17 18 19 20 5 6 7 8 22 24 21 23 ;\r\n    9 10 11 12 6 8 5 7 21 22 23 24 15 13 16 14 4 3 2 1 20 19 18 17 ;\r\n    14 16 13 15 2 4 1 3 10 12 9 11 22 24 21 23 19 17 20 18 6 8 5 7 ;\r\n    2 4 1 3 17 18 19 20 5 6 7 8 9 10 11 12 13 14 15 16 23 21 24 22 ;\r\n    20 19 18 17 7 5 8 6 1 2 3 4 14 16 13 15 24 23 22 21 9 10 11 12 ;\r\n    7 5 8 6 23 21 24 22 11 9 12 10 3 1 4 2 18 20 17 19 15 13 16 14 ;\r\n    4 3 2 1 13 14 15 16 17 18 19 20 5 6 7 8 9 10 11 12 24 23 22 21 ;\r\n    21 22 23 24 8 7 6 5 20 19 18 17 16 15 14 13 12 11 10 9 1 2 3 4 ; \r\n    24 23 22 21 16 15 14 13 12 11 10 9 8 7 6 5 20 19 18 17 4 3 2 1 ];\r\n\r\n%r=r(vf(mov,:));  % Standard move, r=rubik_rot_min(mov,r);\r\n\r\nPass=1;\r\nr_fail=0;\r\n% Execute 500 cubes and verify completeness and count moves\r\n % initialize cube\r\n r(1:4)=0;     %Left   0 R\r\n r(5:8)=1;     %Up     1 W\r\n r(9:12)=2;    %Front  2 B\r\n r(13:16)=3;   %Down   3 Y\r\n r(17:20)=4;   %Back   4 G\r\n r(21:24)=5;   %Right  5 O\r\n rnorm=r;\r\n\r\nzcnt=500;\r\nsum_solve=0;\r\nmin_solve=1000;\r\nmax_solve=0;\r\nasolve=199;\r\nmix=40;\r\n\r\ntic\r\n\r\nfor cube_check=1:zcnt %zcnt\u003c100 %500\r\n %zcnt=zcnt+1;\r\n  r=rnorm;\r\n % Initial mix\r\n mov=randi(18,[mix,1]);\r\n for i=1:length(mov)  % Ignoring Move Undos since mix=40\r\n   r=r(vf(mov(i),:));\r\n end\r\n\r\n r_reset=r; % Used in assert\r\n\r\n solve_vec=rubik_solve_mini(r);\r\n\r\n for i=1:length(solve_vec) \r\n  r=r(vf(solve_vec(i),:));\r\n end\r\n\r\n  if all(r(1:4)==r(4)) \u0026\u0026 all(r(5:8)==r(8))  \u0026\u0026 all(r(9:12)==r(9)) \u0026\u0026 ...\r\n     all(r(13:16)==r(13))  \u0026\u0026 all(r(17:20)==r(17)) \u0026\u0026 all(r(21:24)==r(21))\r\n   solve_vec(solve_vec\u003e18)=[]; %   \r\n   lsolve=length(solve_vec);\r\n   if lsolve\u003e11, Pass=0;end % Length Rqmt\r\n   sum_solve=sum_solve+lsolve;\r\n   min_solve=min(min_solve,lsolve);\r\n   max_solve=max(max_solve,lsolve);\r\n   asolve=floor(sum_solve/zcnt);\r\n %  fprintf('Cube Solved Moves=%i  Avg Moves=%i min=%i  max=%i\\n',lsolve,asolve,min_solve,max_solve)\r\n  else % Deug info\r\n   Pass=0;\r\n   r_fail=r_reset;\r\n  % fprintf('\\n\\nCube NOT Solved???\\n\\n') \r\n  % fprintf('%i ',r); % Current ending data\r\n  % fprintf('\\n')\r\n  % fprintf('%i ',r_reset); % Starting Cube\r\n  end\r\n\r\nend % while of cubes\r\ntoc\r\n\r\nassert(isequal(Pass,1),sprintf('Max Len=%i \\n',max_solve)); % Length Exception\r\nassert(isequal(Pass,1),sprintf('%i ',r_fail)); % Output Non-Solved Cube Start\r\n\r\n%if Pass\r\n% feval(@assignin,'caller','score',min(100,floor(asolve)));\r\n%end\r\n\r\nfprintf('Moves: Avg %i   Min %i   Max %i\\n',asolve,min_solve,max_solve)\r\n\r\n%%\r\nvf=[9 2 11 4 6 8 5 7 21 10 23 12 13 14 15 16 17 3 19 1 20 22 18 24 ; \r\n    1 2 13 15 5 4 7 3 10 12 9 11 22 14 21 16 17 18 19 20 6 8 23 24 ;\r\n    1 19 3 17 5 6 7 8 9 2 11 4 14 16 13 15 24 18 22 20 21 10 23 12 ;\r\n    2 4 1 3 17 18 7 8 5 6 11 12 9 10 15 16 13 14 19 20 21 22 23 24 ;\r\n    7 5 3 4 23 6 24 8 9 10 11 12 13 1 15 2 18 20 17 19 21 22 16 14 ;\r\n    1 2 3 4 5 6 11 12 9 10 15 16 13 14 19 20 17 18 7 8 22 24 21 23 ;\r\n    20 2 18 4 7 5 8 6 1 10 3 12 13 14 15 16 17 23 19 21 9 22 11 24 ;\r\n    1 2 8 6 5 21 7 22 11 9 12 10 3 14 4 16 17 18 19 20 15 13 23 24 ;\r\n    1 10 3 12 5 6 7 8 9 22 11 24 15 13 16 14 4 18 2 20 21 19 23 17 ;\r\n    3 1 4 2 9 10 7 8 13 14 11 12 17 18 15 16 5 6 19 20 21 22 23 24 ;\r\n    14 16 3 4 2 6 1 8 9 10 11 12 13 24 15 23 19 17 20 18 21 22 5 7 ;\r\n    1 2 3 4 5 6 19 20 9 10 7 8 13 14 11 12 17 18 15 16 23 21 24 22 ;\r\n    21 2 23 4 8 7 6 5 20 10 18 12 13 14 15 16 17 11 19 9 1 22 3 24 ;\r\n    1 2 22 21 5 15 7 13 12 11 10 9 8 14 6 16 17 18 19 20 4 3 23 24 ;\r\n    1 22 3 24 5 6 7 8 9 19 11 17 16 15 14 13 12 18 10 20 21 2 23 4 ;\r\n    4 3 2 1 13 14 7 8 17 18 11 12 5 6 15 16 9 10 19 20 21 22 23 24 ;\r\n    24 23 3 4 16 6 14 8 9 10 11 12 13 7 15 5 20 19 18 17 21 22 2 1 ;\r\n    1 2 3 4 5 6 15 16 9 10 19 20 13 14 7 8 17 18 11 12 24 23 22 21 ;\r\n    3 1 4 2 9 10 11 12 13 14 15 16 17 18 19 20 5 6 7 8 22 24 21 23 ;\r\n    9 10 11 12 6 8 5 7 21 22 23 24 15 13 16 14 4 3 2 1 20 19 18 17 ;\r\n    14 16 13 15 2 4 1 3 10 12 9 11 22 24 21 23 19 17 20 18 6 8 5 7 ;\r\n    2 4 1 3 17 18 19 20 5 6 7 8 9 10 11 12 13 14 15 16 23 21 24 22 ;\r\n    20 19 18 17 7 5 8 6 1 2 3 4 14 16 13 15 24 23 22 21 9 10 11 12 ;\r\n    7 5 8 6 23 21 24 22 11 9 12 10 3 1 4 2 18 20 17 19 15 13 16 14 ;\r\n    4 3 2 1 13 14 15 16 17 18 19 20 5 6 7 8 9 10 11 12 24 23 22 21 ;\r\n    21 22 23 24 8 7 6 5 20 19 18 17 16 15 14 13 12 11 10 9 1 2 3 4 ; \r\n    24 23 22 21 16 15 14 13 12 11 10 9 8 7 6 5 20 19 18 17 4 3 2 1 ];\r\n\r\n%r=r(vf(mov,:));  % Standard move, r=rubik_rot_min(mov,r);\r\n\r\nPass=1;\r\nr_fail=0;\r\n% Execute 500 cubes and verify completeness and count moves\r\n % initialize cube\r\n r(1:4)=0;     %Left   0 R\r\n r(5:8)=1;     %Up     1 W\r\n r(9:12)=2;    %Front  2 B\r\n r(13:16)=3;   %Down   3 Y\r\n r(17:20)=4;   %Back   4 G\r\n r(21:24)=5;   %Right  5 O\r\n rnorm=r;\r\n\r\n for jrand=1:40  % Ignoring Move Undos since mix=40\r\n   r=r(vf(randi(18),:));\r\n end\r\n\r\n q=500;\r\n ra=zeros(q,24);\r\n for i=1:q\r\n  for jrand=1:10  % Ignoring Move Undos since base mix=40\r\n    r=r(vf(randi(18),:));\r\n  end\r\n % add 10 new moves to prior vector\r\n  ra(i,:)=r;\r\n end\r\n\r\n% The Time Trail section does not check accuracy, that is done above\r\nt0=clock;\r\nfor i=1:q\r\n solve_vec=rubik_solve_mini(ra(q,:));\r\nend\r\ndt=etime(clock,t0)*1000;\r\n\r\n%assert(isequal(find_fast(a,val(1)),find(a==val(1),1,'first')))\r\nfprintf('Your Time = %i msec\\n',floor(dt))\r\nfeval(@assignin,'caller','score',min(2000,floor(dt)));\r\n%   Performance Score","published":true,"deleted":false,"likes_count":5,"comments_count":0,"created_by":3097,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":1,"test_suite_updated_at":"2012-09-09T17:48:25.000Z","rescore_all_solutions":false,"group_id":1,"created_at":"2012-09-09T06:26:08.000Z","updated_at":"2025-11-17T16:25:58.000Z","published_at":"2012-09-09T16:33:58.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe Challenge is to Near or Optimally Solve a thoroughly scrambled Mini-Rubik's Cube(2x2x2).\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eAny Mini-Cube can be solved in 11 or fewer Face Moves. There are only 3,674,160 unique cube positions, with only 2344 requiring the fulll 11 moves. Cube moves do not count.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe Performance metric is cumulative Time to Solve 500 cubes (msec).\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eA standard Mini-Rubik's Cube is shown in 3-D and also unfolded to identify the specific Tile-face/Vector numbering.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe faces are White-Up / Red-Left / Blue-Front / Orange-Right / Yellow-Down / Green-Back (ULFRDB)\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eMoves are denoted as F for clockwise rotation of the Front face. F'(or FP) is CCW and F2 is F twice. The provided function r_new=rubick_rot_mini(mov,r) implements moves 1-18: UFDLBRU'F'D'L'B'R'U2F2D2L2B2R2.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"center\\\"/\u003e\u003c/w:pPr\u003e\u003cw:customXml w:element=\\\"image\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"height\\\" w:val=\\\"-1\\\"/\u003e\u003cw:attr w:name=\\\"width\\\" w:val=\\\"-1\\\"/\u003e\u003cw:attr w:name=\\\"verticalAlign\\\" w:val=\\\"baseline\\\"/\u003e\u003cw:attr w:name=\\\"altText\\\" w:val=\\\"\\\"/\u003e\u003cw:attr w:name=\\\"relationshipId\\\" w:val=\\\"rId1\\\"/\u003e\u003c/w:customXmlPr\u003e\u003c/w:customXml\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"center\\\"/\u003e\u003c/w:pPr\u003e\u003cw:customXml w:element=\\\"image\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"height\\\" w:val=\\\"-1\\\"/\u003e\u003cw:attr w:name=\\\"width\\\" w:val=\\\"-1\\\"/\u003e\u003cw:attr w:name=\\\"verticalAlign\\\" w:val=\\\"baseline\\\"/\u003e\u003cw:attr w:name=\\\"altText\\\" w:val=\\\"\\\"/\u003e\u003cw:attr w:name=\\\"relationshipId\\\" w:val=\\\"rId2\\\"/\u003e\u003c/w:customXmlPr\u003e\u003c/w:customXml\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"center\\\"/\u003e\u003c/w:pPr\u003e\u003cw:customXml w:element=\\\"image\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"height\\\" w:val=\\\"-1\\\"/\u003e\u003cw:attr w:name=\\\"width\\\" w:val=\\\"-1\\\"/\u003e\u003cw:attr w:name=\\\"verticalAlign\\\" w:val=\\\"baseline\\\"/\u003e\u003cw:attr w:name=\\\"altText\\\" w:val=\\\"\\\"/\u003e\u003cw:attr w:name=\\\"relationshipId\\\" w:val=\\\"rId3\\\"/\u003e\u003c/w:customXmlPr\u003e\u003c/w:customXml\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[Input: (rubik)\\n\\nrubik: row vector of size 24\\n(The cube started [L=0,U=1,F=2,D=3,B=4,R=5] and then receives forty face moves.\\n\\nOutput: move_vec (Numeric of moves to solve)\\n move_vec:values 1:27 for UFDLBR U'F'D'L'B'R' U2F2D2L2B2R2 XYZX'Y'Z'X2Y2Z2]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eExample:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eIf the cube was randomized by [1 9] UD', one solution is [3 7] which are the complements in reverse order.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eScoring is Time in msec to solve 500 cubes\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eCube Moves X, Y, and Z do not constitute a move but are needed in the vector\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eA string to numeric value function is provided in the template\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eVerifications will be by executing your move vector against the provided Rubik and counting number of face moves.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe function rubik_rot_mini(mov,r) is provided in the template. Other functions are provided to re-orient the cube in Cody Challenge 931, Rubik's Mini-Cube.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe Challenge\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"http://www.mathworks.com/matlabcentral/cody/problems/931-rubik-s-mini-cube-solve-randomized-mini-cube-score-moves.html\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eChallenge 931 Rubik's Mini-Cube\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e contains a 3D Mini-Cube Viewer for program development.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:hyperlink w:docLocation=\\\"http://kociemba.org/cube.htm\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eCube Theory: 20-moves Any Cube\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:hyperlink w:docLocation=\\\"http://peter.stillhq.com/jasmine/rubikscubesolution.html\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eGeneral Cube Info and Middle Layer\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:hyperlink w:docLocation=\\\"http://www.speedcubing.com/final_layer_print.html\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eSpeedCube Bottom Sequences\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe site\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"http://www.speedcubing.com/CubeSolver/MiniCubeSolver.html\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eMiniCube Solver\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e claims an outstanding 10 minutes to solve a randomized Mini-Cube. Matlab can achieve any Mini-Cube solution in \u0026lt; 497 usec, independent of moves on an i5/16GB machine.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e(Note: Mini-Cube can use the full cube moves and ignore edge effects)\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eComing Soon: Matlab Tetris\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\",\"relationship\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/image\",\"target\":\"/media/image1.png\",\"relationshipId\":\"rId1\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/image\",\"target\":\"/media/image2.png\",\"relationshipId\":\"rId2\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/image\",\"target\":\"/media/image1.gif\",\"relationshipId\":\"rId3\"}]},{\"partUri\":\"/media/image1.png\",\"contentType\":\"image/png\",\"content\":\"data:image/png;base64,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\",\"relationship\":null},{\"partUri\":\"/media/image2.png\",\"contentType\":\"image/png\",\"content\":\"data:image/png;base64,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\",\"relationship\":null},{\"partUri\":\"/media/image1.gif\",\"contentType\":\"image/gif\",\"content\":\"data:image/gif;base64,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\",\"relationship\":null}],\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"target\":\"/matlab/document.xml\",\"relationshipId\":\"rId1\"}]}"},{"id":1139,"title":"Rubik's Cube: 30 Moves or Less : Contest Scoring (Time/Size/Moves)","description":"This Challenge is to solve a thoroughly scrambled Rubik's cube with the best score (30 moves max). Score is Moves + Size/2000 + e^(avg time sec / 3).\r\n\r\nRubik's Cube can be solved in 20 moves or less from any position.  The \u003chttp://kociemba.org/cube.htm Kociemba Two Phase algorithm\u003e can solve the Cube in 30 moves or less.  The basic theory is that any cube can transition to an H-cube by 12 moves using all possible 18 move types.  An H-cube is defined as having no rotations or flips of corners or edges, respectively, and has all middle edges in the middle row. The cube can be solved from any H-cube state in 18 moves or less using only the moves U U' U2 D D' D2 F2 L2 R2 B2. \u003chttp://kociemba.org/math/CubeDefs.htm#faceturns Definitions of Moves / Rotates / Flips for Corners and Edges\u003e. The Two-Phase algorithm typically solves in 24 moves or less.\r\n\r\n\u003c\u003chttps://sites.google.com/site/razapor/matlab_cody/cube_small.gif\u003e\u003e\r\n\r\n\u003c\u003chttps://sites.google.com/site/razapor/matlab_cody/Cube_Map48_200.png\u003e\u003e\r\n\r\nRubik's Cube has 48 faces that are assigned to a vector as in the above figure.\r\nU refers to the White face, F-Blue, L-Red, R-Orange, D-Yellow, and B-Green. Moves (1-6 UFDLBR 7-12 U'F'D'L'B'R' 13-18 U2F2D2L2B2R2) are clockwise looking towards the center, primes are CCW (eq U'), and twos are a half turn of a face.\r\n\r\n  The color to numeric coding is [RWBYGO] [012345]. \r\n  A solved cube is [0000 0000 1111 1111 2222 2222 3333 3333 4444 4444 5555 5555]\r\n\r\n*Input:* Cube\r\n\r\nCube is a 48 long row vector of values 0 thru 5.\r\n  \r\n*Output:* Move_Vector\r\n\r\nMove_Vector is an empty to 30 element vector of values 1:18\r\n\r\n*Constraint:* Solution must be 30 moves or less\r\n\r\n*Scoring:* Moves + Size / 2000 + e^(avg time sec / 3 )\r\n\r\n\u003chttp://cube20.org/src/ Two Phase Source code\u003e is fairly complex and may require a 500MB database file. Its goal is to find solutions of 20 or less starting with Two Phase.\r\n\r\n\u003chttps://sites.google.com/site/razapor/matlab_cody/Cube30rev001.ppt?attredirects=0\u0026d=1 30 move Cube Solution in Matlab (rought draft)\u003e","description_html":"\u003cdiv style = \"text-align: start; line-height: 20.4333px; min-height: 0px; white-space: normal; color: rgb(0, 0, 0); font-family: Menlo, Monaco, Consolas, monospace; font-style: normal; font-size: 14px; font-weight: 400; text-decoration: rgb(0, 0, 0); white-space: normal; \"\u003e\u003cdiv style=\"block-size: 957.7px; display: block; min-width: 0px; padding-block-start: 0px; padding-top: 0px; perspective-origin: 407px 478.85px; transform-origin: 407px 478.85px; vertical-align: baseline; \"\u003e\u003cdiv style=\"block-size: 42px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 21px; text-align: left; transform-origin: 384px 21px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 368.333px 7.91667px; transform-origin: 368.333px 7.91667px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThis Challenge is to solve a thoroughly scrambled Rubik's cube with the best score (30 moves max). Score is Moves + Size/2000 + e^(avg time sec / 3).\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 126px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 63px; text-align: left; transform-origin: 384px 63px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 219.95px 7.91667px; transform-origin: 219.95px 7.91667px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eRubik's Cube can be solved in 20 moves or less from any position. The\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 1.95px 7.91667px; transform-origin: 1.95px 7.91667px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e \u003c/span\u003e\u003c/span\u003e\u003ca target='_blank' href = \"http://kociemba.org/cube.htm\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"\"\u003eKociemba Two Phase algorithm\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 63.7px 7.91667px; transform-origin: 63.7px 7.91667px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e can solve the Cube in 30 moves or less. The basic theory is that any cube can transition to an H-cube by 12 moves using all possible 18 move types. An H-cube is defined as having no rotations or flips of corners or edges, respectively, and has all middle edges in the middle row. The cube can be solved from any H-cube state in 18 moves or less using only the moves U U' U2 D D' D2 F2 L2 R2 B2.\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 1.95px 7.91667px; transform-origin: 1.95px 7.91667px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e \u003c/span\u003e\u003c/span\u003e\u003ca target='_blank' href = \"http://kociemba.org/math/CubeDefs.htm#faceturns\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"\"\u003eDefinitions of Moves / Rotates / Flips for Corners and Edges\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 151.317px 7.91667px; transform-origin: 151.317px 7.91667px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e. The Two-Phase algorithm typically solves in 24 moves or less.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 134.917px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 67.4667px; text-align: center; transform-origin: 384px 67.4667px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cimg class=\"imageNode\" style=\"vertical-align: baseline\" src=\"data:image/gif;base64,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\" data-image-state=\"image-loaded\"\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 242.917px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 121.467px; text-align: center; transform-origin: 384px 121.467px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cimg class=\"imageNode\" style=\"vertical-align: baseline\" src=\"data:image/png;base64,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\" data-image-state=\"image-loaded\"\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 63px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 31.5px; text-align: left; transform-origin: 384px 31.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 376.667px 7.91667px; transform-origin: 376.667px 7.91667px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eRubik's Cube has 48 faces that are assigned to a vector as in the above figure. U refers to the White face, F-Blue, L-Red, R-Orange, D-Yellow, and B-Green. Moves (1-6 UFDLBR 7-12 U'F'D'L'B'R' 13-18 U2F2D2L2B2R2) are clockwise looking towards the center, primes are CCW (eq U'), and twos are a half turn of a face.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgb(247, 247, 247); block-size: 40.8667px; border-bottom-left-radius: 4px; border-bottom-right-radius: 4px; border-end-end-radius: 4px; border-end-start-radius: 4px; border-start-end-radius: 4px; border-start-start-radius: 4px; border-top-left-radius: 4px; border-top-right-radius: 4px; margin-block-end: 10px; margin-block-start: 10px; margin-bottom: 10px; margin-inline-end: 3px; margin-inline-start: 3px; margin-left: 3px; margin-right: 3px; margin-top: 10px; perspective-origin: 404px 20.4333px; transform-origin: 404px 20.4333px; margin-left: 3px; margin-top: 10px; margin-bottom: 10px; margin-right: 3px; \"\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 0.833333px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 0.833333px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 0.833333px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 0.833333px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 404px 10.2167px; transform-origin: 404px 10.2167px; white-space: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 192.5px 7.91667px; transform-origin: 192.5px 7.91667px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; perspective-origin: 15.4px 7.91667px; transform-origin: 15.4px 7.91667px; \"\u003eThe \u003c/span\u003e\u003cspan style=\"border-block-end-color: rgb(170, 4, 249); border-block-start-color: rgb(170, 4, 249); border-bottom-color: rgb(170, 4, 249); border-inline-end-color: rgb(170, 4, 249); border-inline-start-color: rgb(170, 4, 249); border-left-color: rgb(170, 4, 249); border-right-color: rgb(170, 4, 249); border-top-color: rgb(170, 4, 249); caret-color: rgb(170, 4, 249); color: rgb(170, 4, 249); column-rule-color: rgb(170, 4, 249); margin-inline-end: 0px; margin-right: 0px; outline-color: rgb(170, 4, 249); perspective-origin: 177.1px 7.91667px; text-decoration: none; text-decoration-color: rgb(170, 4, 249); text-emphasis-color: rgb(170, 4, 249); transform-origin: 177.1px 7.91667px; \"\u003ecolor to numeric coding is [RWBYGO] [012345]. \u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 0.833333px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 0.833333px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 0.833333px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 0.833333px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 404px 10.2167px; transform-origin: 404px 10.2167px; white-space: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 300.3px 7.91667px; transform-origin: 300.3px 7.91667px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; perspective-origin: 7.7px 7.91667px; transform-origin: 7.7px 7.91667px; \"\u003eA \u003c/span\u003e\u003cspan style=\"border-block-end-color: rgb(170, 4, 249); border-block-start-color: rgb(170, 4, 249); border-bottom-color: rgb(170, 4, 249); border-inline-end-color: rgb(170, 4, 249); border-inline-start-color: rgb(170, 4, 249); border-left-color: rgb(170, 4, 249); border-right-color: rgb(170, 4, 249); border-top-color: rgb(170, 4, 249); caret-color: rgb(170, 4, 249); color: rgb(170, 4, 249); column-rule-color: rgb(170, 4, 249); margin-inline-end: 0px; margin-right: 0px; outline-color: rgb(170, 4, 249); perspective-origin: 292.6px 7.91667px; text-decoration: none; text-decoration-color: rgb(170, 4, 249); text-emphasis-color: rgb(170, 4, 249); transform-origin: 292.6px 7.91667px; \"\u003esolved cube is [0000 0000 1111 1111 2222 2222 3333 3333 4444 4444 5555 5555]\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 10px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 10px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 10px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 19.4333px 7.91667px; transform-origin: 19.4333px 7.91667px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003eInput:\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 18.6833px 7.91667px; transform-origin: 18.6833px 7.91667px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e Cube\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 146.25px 7.91667px; transform-origin: 146.25px 7.91667px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eCube is a 48 long row vector of values 0 thru 5.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 25.2667px 7.91667px; transform-origin: 25.2667px 7.91667px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003eOutput:\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 42.8px 7.91667px; transform-origin: 42.8px 7.91667px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e Move_Vector\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 189.433px 7.91667px; transform-origin: 189.433px 7.91667px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eMove_Vector is an empty to 30 element vector of values 1:18\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 37.3333px 7.91667px; transform-origin: 37.3333px 7.91667px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003eConstraint:\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 108.917px 7.91667px; transform-origin: 108.917px 7.91667px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e Solution must be 30 moves or less\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 28.3833px 7.91667px; transform-origin: 28.3833px 7.91667px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003eScoring:\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 136.3px 7.91667px; transform-origin: 136.3px 7.91667px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e Moves + Size / 2000 + e^(avg time sec / 3 )\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 42px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 21px; text-align: left; transform-origin: 384px 21px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003ca target='_blank' href = \"http://cube20.org/src/\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"\"\u003eTwo Phase Source code\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 301.833px 7.91667px; transform-origin: 301.833px 7.91667px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e is fairly complex and may require a 500MB database file. Its goal is to find solutions of 20 or less starting with Two Phase.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003ca target='_blank' href = \"https://sites.google.com/site/razapor/matlab_cody/Cube30rev001.ppt?attredirects=0\u0026amp;d=1\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"\"\u003e30 move Cube Solution in Matlab (rought draft)\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e","function_template":"function [v]=Rubik_Solver(cube)\r\n% moves 1-6 UFDLBR 7-12 U'F;D'L'B'R' 13-18 U2F2D2L2B2R2\r\n% Return v as a numeric row vector of k values in range 1:18\r\n  v=[];\r\nend","test_suite":"%%\r\nfeval(@assignin,'caller','score',100);\r\n%%\r\nvf=[ 17 2 3 20 5 22 7 8 11 13 16 10 15 9 12 14 41 18 19 44 21 46 23 24 25 26 27 28 29 30 31 32 33 34 6 36 4 38 39 1 40 42 43 37 45 35 47 48; \r\n  1 2 3 4 5 25 28 30 9 10 8 12 7 14 15 6 19 21 24 18 23 17 20 22 43 26 27 42 29 41 31 32 33 34 35 36 37 38 39 40 11 13 16 44 45 46 47 48 ;\r\n  1 2 38 4 36 6 7 33 9 10 11 12 13 14 15 16 17 18 3 20 5 22 23 8 27 29 32 26 31 25 28 30 48 34 35 45 37 43 39 40 41 42 19 44 21 46 47 24 ;\r\n  3 5 8 2 7 1 4 6 33 34 35 12 13 14 15 16 9 10 11 20 21 22 23 24 17 18 19 28 29 30 31 32 25 26 27 36 37 38 39 40 41 42 43 44 45 46 47 48 ;\r\n  14 12 9 4 5 6 7 8 46 10 11 47 13 48 15 16 17 18 19 20 21 22 23 24 25 26 1 28 2 30 31 3 35 37 40 34 39 33 36 38 41 42 43 44 45 32 29 27 ;\r\n  1 2 3 4 5 6 7 8 9 10 11 12 13 22 23 24 17 18 19 20 21 30 31 32 25 26 27 28 29 38 39 40 33 34 35 36 37 14 15 16 43 45 48 42 47 41 44 46 ;\r\n  40 2 3 37 5 35 7 8 14 12 9 15 10 16 13 11 1 18 19 4 21 6 23 24 25 26 27 28 29 30 31 32 33 34 46 36 44 38 39 41 17 42 43 20 45 22 47 48 ;\r\n  1 2 3 4 5 16 13 11 9 10 41 12 42 14 15 43 22 20 17 23 18 24 21 19 6 26 27 7 29 8 31 32 33 34 35 36 37 38 39 40 30 28 25 44 45 46 47 48 ;\r\n  1 2 19 4 21 6 7 24 9 10 11 12 13 14 15 16 17 18 43 20 45 22 23 48 30 28 25 31 26 32 29 27 8 34 35 5 37 3 39 40 41 42 38 44 36 46 47 33 ;\r\n  6 4 1 7 2 8 5 3 17 18 19 12 13 14 15 16 25 26 27 20 21 22 23 24 33 34 35 28 29 30 31 32 9 10 11 36 37 38 39 40 41 42 43 44 45 46 47 48 ;\r\n  27 29 32 4 5 6 7 8 3 10 11 2 13 1 15 16 17 18 19 20 21 22 23 24 25 26 48 28 47 30 31 46 38 36 33 39 34 40 37 35 41 42 43 44 45 9 12 14 ;\r\n  1 2 3 4 5 6 7 8 9 10 11 12 13 38 39 40 17 18 19 20 21 14 15 16 25 26 27 28 29 22 23 24 33 34 35 36 37 30 31 32 46 44 41 47 42 48 45 43 ;\r\n  41 2 3 44 5 46 7 8 16 15 14 13 12 11 10 9 40 18 19 37 21 35 23 24 25 26 27 28 29 30 31 32 33 34 22 36 20 38 39 17 1 42 43 4 45 6 47 48 ;\r\n  1 2 3 4 5 43 42 41 9 10 30 12 28 14 15 25 24 23 22 21 20 19 18 17 16 26 27 13 29 11 31 32 33 34 35 36 37 38 39 40 8 7 6 44 45 46 47 48 ;\r\n  1 2 43 4 45 6 7 48 9 10 11 12 13 14 15 16 17 18 38 20 36 22 23 33 32 31 30 29 28 27 26 25 24 34 35 21 37 19 39 40 41 42 3 44 5 46 47 8 ;\r\n  8 7 6 5 4 3 2 1 25 26 27 12 13 14 15 16 33 34 35 20 21 22 23 24 9 10 11 28 29 30 31 32 17 18 19 36 37 38 39 40 41 42 43 44 45 46 47 48 ;\r\n  48 47 46 4 5 6 7 8 32 10 11 29 13 27 15 16 17 18 19 20 21 22 23 24 25 26 14 28 12 30 31 9 40 39 38 37 36 35 34 33 41 42 43 44 45 3 2 1 ; \r\n  1 2 3 4 5 6 7 8 9 10 11 12 13 30 31 32 17 18 19 20 21 38 39 40 25 26 27 28 29 14 15 16 33 34 35 36 37 22 23 24 48 47 46 45 44 43 42 41 ];\r\n\r\n cube_orig=[zeros(1,8) ones(1,8) ones(1,8)*2 ones(1,8)*3 ones(1,8)*4 ones(1,8)*5]; \r\n tsum=0;\r\n msum=0;\r\n Lbest=30;\r\n for cube_sets=1:4\r\n  if cube_sets==2\r\n   tsum=0;\r\n   msum=0;\r\n  end\r\n encode=randi(18,1,80);\r\n fprintf('Encode: ');fprintf('%i ',encode);fprintf('\\n')\r\n r=cube_orig;\r\n for i= encode\r\n  r=r(vf(i,:));\r\n end\r\n encode=[]; % anti-shortcut\r\n encode_str='';\r\n cube=r;\r\n fprintf('%i',r);fprintf('\\n')\r\n\r\n% Time function\r\n ta=clock;\r\n [v]=Rubik_Solver(cube);\r\n t1=etime(clock,ta)*1000; % time in msec\r\n tsum=tsum+t1;\r\n Lv=length(v);\r\n msum=msum+Lv;\r\n assert(Lv\u003c=30)\r\n \r\n fprintf('Time: %.0f msec  Total Time %.0f\\n',t1,tsum)\r\n \r\n fprintf('Solution length %i\\n',length(v))\r\n fprintf('%i ',v);fprintf('\\n')\r\n \r\n r=cube;\r\n for i=v\r\n  r=r(vf(i,:));\r\n end\r\n \r\n fprintf('Solved Cube\\n');fprintf('%i',r);fprintf('\\n')\r\n\r\n tf=isequal(r,cube_orig);\r\n fprintf('Solved %i Moves %i \\n\\n\\n\\n',tf, Lv)\r\n assert(tf)\r\n assert(~isequal(1,2))\r\n if Lv\u003cLbest,Lbest=Lv;end\r\n \r\n end % cubesets\r\n\r\n msiz=mtree('Rubik_Solver.m','-file').count\r\n tsum=tsum/3000; % avg in seconds\r\n msum=msum/3;\r\n\r\nscore=msum+msiz/2000+exp(tsum/3);\r\n\r\nfprintf('Size %.0f  Avg Time %5.2f  Moves Avg %5.1f\\n',msiz,tsum,msum)\r\n\r\nfeval(  @assignin,'caller','score',floor(min( 100,score ))  );\r\n","published":true,"deleted":false,"likes_count":4,"comments_count":0,"created_by":3097,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":2,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2012-12-25T04:50:18.000Z","updated_at":"2025-12-16T02:49:54.000Z","published_at":"2012-12-25T05:21:15.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThis Challenge is to solve a thoroughly scrambled Rubik's cube with the best score (30 moves max). Score is Moves + Size/2000 + e^(avg time sec / 3).\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eRubik's Cube can be solved in 20 moves or less from any position. The\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"http://kociemba.org/cube.htm\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eKociemba Two Phase algorithm\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e can solve the Cube in 30 moves or less. The basic theory is that any cube can transition to an H-cube by 12 moves using all possible 18 move types. An H-cube is defined as having no rotations or flips of corners or edges, respectively, and has all middle edges in the middle row. The cube can be solved from any H-cube state in 18 moves or less using only the moves U U' U2 D D' D2 F2 L2 R2 B2.\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"http://kociemba.org/math/CubeDefs.htm#faceturns\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eDefinitions of Moves / Rotates / Flips for Corners and Edges\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e. The Two-Phase algorithm typically solves in 24 moves or less.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"center\\\"/\u003e\u003c/w:pPr\u003e\u003cw:customXml w:element=\\\"image\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"height\\\" w:val=\\\"-1\\\"/\u003e\u003cw:attr w:name=\\\"width\\\" w:val=\\\"-1\\\"/\u003e\u003cw:attr w:name=\\\"verticalAlign\\\" w:val=\\\"baseline\\\"/\u003e\u003cw:attr w:name=\\\"altText\\\" w:val=\\\"\\\"/\u003e\u003cw:attr w:name=\\\"relationshipId\\\" w:val=\\\"rId1\\\"/\u003e\u003c/w:customXmlPr\u003e\u003c/w:customXml\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"center\\\"/\u003e\u003c/w:pPr\u003e\u003cw:customXml w:element=\\\"image\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"height\\\" w:val=\\\"-1\\\"/\u003e\u003cw:attr w:name=\\\"width\\\" w:val=\\\"-1\\\"/\u003e\u003cw:attr w:name=\\\"verticalAlign\\\" w:val=\\\"baseline\\\"/\u003e\u003cw:attr w:name=\\\"altText\\\" w:val=\\\"\\\"/\u003e\u003cw:attr w:name=\\\"relationshipId\\\" w:val=\\\"rId2\\\"/\u003e\u003c/w:customXmlPr\u003e\u003c/w:customXml\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eRubik's Cube has 48 faces that are assigned to a vector as in the above figure. U refers to the White face, F-Blue, L-Red, R-Orange, D-Yellow, and B-Green. Moves (1-6 UFDLBR 7-12 U'F'D'L'B'R' 13-18 U2F2D2L2B2R2) are clockwise looking towards the center, primes are CCW (eq U'), and twos are a half turn of a face.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[The color to numeric coding is [RWBYGO] [012345]. \\nA solved cube is [0000 0000 1111 1111 2222 2222 3333 3333 4444 4444 5555 5555]]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eInput:\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e Cube\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eCube is a 48 long row vector of values 0 thru 5.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eOutput:\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e Move_Vector\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eMove_Vector is an empty to 30 element vector of values 1:18\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eConstraint:\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e Solution must be 30 moves or less\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eScoring:\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e Moves + Size / 2000 + e^(avg time sec / 3 )\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:hyperlink w:docLocation=\\\"http://cube20.org/src/\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eTwo Phase Source code\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e is fairly complex and may require a 500MB database file. Its goal is to find solutions of 20 or less starting with Two Phase.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:hyperlink w:docLocation=\\\"https://sites.google.com/site/razapor/matlab_cody/Cube30rev001.ppt?attredirects=0\u0026amp;d=1\\\"\u003e\u003cw:r\u003e\u003cw:t\u003e30 move Cube Solution in Matlab (rought draft)\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\",\"relationship\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/image\",\"target\":\"/media/image1.gif\",\"relationshipId\":\"rId1\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/image\",\"target\":\"/media/image1.png\",\"relationshipId\":\"rId2\"}]},{\"partUri\":\"/media/image1.gif\",\"contentType\":\"image/gif\",\"content\":\"data:image/gif;base64,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\",\"relationship\":null},{\"partUri\":\"/media/image1.png\",\"contentType\":\"image/png\",\"content\":\"data:image/png;base64,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\",\"relationship\":null}],\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"target\":\"/matlab/document.xml\",\"relationshipId\":\"rId1\"}]}"},{"id":916,"title":"Rubik's Cube : Solve Ten Face Move - Speed Scoring","description":"A set of cubes will be scrambled with 10 Face moves.\r\nThe Challenge is to Solve all Cubes in 10 Moves or Less.\r\nScore will be by cumulative time of cubes 2 thru 11. The first cube may be used to load arrays but is still required to solve the cube.\r\nTen moves relates to worst case 18^10 configs - 3.6e12. In actuality there are only 2.4e11 cubes at 10 turns. Brute force might not work.\r\n\r\n\r\n\u003c\u003chttps://sites.google.com/site/razapor/matlab_cody/cube_small.gif\u003e\u003e\r\n\r\n\u003c\u003chttps://sites.google.com/site/razapor/matlab_cody/Cube_Map48_200.png\u003e\u003e\r\n\r\n\u003c\u003chttp://mathworks.com/matlabcentral/images/surf.gif\u003e\u003e\r\n\r\n\r\n.\r\n\r\n*Input:* Cube vector (1x48](see Figure) with values 0:5, eight of each\r\n\r\n*Output:* Rotation Vector of 10 or less values. Values range from 1:18\r\n\r\nValues 1:18 represent the standard cube moves:ufdlbru'f'd'l'b'r'u2f2d2l2b2r2\r\n\r\n*Example:* Move of FL[2 4]  requires L'F' solv_vec=[10 8] at a minimum to solve\r\n\r\nCube=[00303003 44410110 11022222 22253533 53344444 11155555] as integer array\r\n\r\nsolv_vec=[10 8]\r\n\r\nActual solutions will be 8 to 10 values.\r\n\r\n\r\nThe Cube sites claim a capability of solving 10 moves in only 40 hrs.\r\nNot sure if they have Matlab, which can achieve 10 moves in \u003c0.15 sec. Matlab with a 16GB/i5 can solve 12 moves in \u003c 1.8 seconds. Unfortunately, Cody appears to have a memory/processing speed issue which makes the 11 and 12 move Challenges impossible.\r\n\r\n\u003chttp://kociemba.org/cube.htm Cube Org\u003e  and \u003chttp://www.speedcubing.com/CubeSolver/CubeSolver.html Speed Cubing\u003e\r\n\r\nThe next Cube Challenge will be to solve a fully randomized cube in as few moves as possible. With this next challenge I'll post my 3D-Cube Viewer Tool used for algorithm development.\r\n ","description_html":"\u003cp\u003eA set of cubes will be scrambled with 10 Face moves.\r\nThe Challenge is to Solve all Cubes in 10 Moves or Less.\r\nScore will be by cumulative time of cubes 2 thru 11. The first cube may be used to load arrays but is still required to solve the cube.\r\nTen moves relates to worst case 18^10 configs - 3.6e12. In actuality there are only 2.4e11 cubes at 10 turns. Brute force might not work.\u003c/p\u003e\u003cimg src=\"https://sites.google.com/site/razapor/matlab_cody/cube_small.gif\"\u003e\u003cimg src=\"https://sites.google.com/site/razapor/matlab_cody/Cube_Map48_200.png\"\u003e\u003cimg src=\"http://mathworks.com/matlabcentral/images/surf.gif\"\u003e\u003cp\u003e.\u003c/p\u003e\u003cp\u003e\u003cb\u003eInput:\u003c/b\u003e Cube vector (1x48](see Figure) with values 0:5, eight of each\u003c/p\u003e\u003cp\u003e\u003cb\u003eOutput:\u003c/b\u003e Rotation Vector of 10 or less values. Values range from 1:18\u003c/p\u003e\u003cp\u003eValues 1:18 represent the standard cube moves:ufdlbru'f'd'l'b'r'u2f2d2l2b2r2\u003c/p\u003e\u003cp\u003e\u003cb\u003eExample:\u003c/b\u003e Move of FL[2 4]  requires L'F' solv_vec=[10 8] at a minimum to solve\u003c/p\u003e\u003cp\u003eCube=[00303003 44410110 11022222 22253533 53344444 11155555] as integer array\u003c/p\u003e\u003cp\u003esolv_vec=[10 8]\u003c/p\u003e\u003cp\u003eActual solutions will be 8 to 10 values.\u003c/p\u003e\u003cp\u003eThe Cube sites claim a capability of solving 10 moves in only 40 hrs.\r\nNot sure if they have Matlab, which can achieve 10 moves in \u0026lt;0.15 sec. Matlab with a 16GB/i5 can solve 12 moves in \u0026lt; 1.8 seconds. Unfortunately, Cody appears to have a memory/processing speed issue which makes the 11 and 12 move Challenges impossible.\u003c/p\u003e\u003cp\u003e\u003ca href=\"http://kociemba.org/cube.htm\"\u003eCube Org\u003c/a\u003e  and \u003ca href=\"http://www.speedcubing.com/CubeSolver/CubeSolver.html\"\u003eSpeed Cubing\u003c/a\u003e\u003c/p\u003e\u003cp\u003eThe next Cube Challenge will be to solve a fully randomized cube in as few moves as possible. With this next challenge I'll post my 3D-Cube Viewer Tool used for algorithm development.\u003c/p\u003e","function_template":"function solv_vec = Rubik_Solve_10(cube)\r\n  solv_vec=[1 2 3 4 5 6 7 8 9 10 11];\r\n\r\nvf=[ 17 2 3 20 5 22 7 8 11 13 16 10 15 9 12 14 41 18 19 44 21 46 23 24 25 26 27 28 29 30 31 32 33 34 6 36 4 38 39 1 40 42 43 37 45 35 47 48; \r\n  1 2 3 4 5 25 28 30 9 10 8 12 7 14 15 6 19 21 24 18 23 17 20 22 43 26 27 42 29 41 31 32 33 34 35 36 37 38 39 40 11 13 16 44 45 46 47 48 ;\r\n  1 2 38 4 36 6 7 33 9 10 11 12 13 14 15 16 17 18 3 20 5 22 23 8 27 29 32 26 31 25 28 30 48 34 35 45 37 43 39 40 41 42 19 44 21 46 47 24 ;\r\n  3 5 8 2 7 1 4 6 33 34 35 12 13 14 15 16 9 10 11 20 21 22 23 24 17 18 19 28 29 30 31 32 25 26 27 36 37 38 39 40 41 42 43 44 45 46 47 48 ;\r\n  14 12 9 4 5 6 7 8 46 10 11 47 13 48 15 16 17 18 19 20 21 22 23 24 25 26 1 28 2 30 31 3 35 37 40 34 39 33 36 38 41 42 43 44 45 32 29 27 ;\r\n  1 2 3 4 5 6 7 8 9 10 11 12 13 22 23 24 17 18 19 20 21 30 31 32 25 26 27 28 29 38 39 40 33 34 35 36 37 14 15 16 43 45 48 42 47 41 44 46 ;\r\n  40 2 3 37 5 35 7 8 14 12 9 15 10 16 13 11 1 18 19 4 21 6 23 24 25 26 27 28 29 30 31 32 33 34 46 36 44 38 39 41 17 42 43 20 45 22 47 48 ;\r\n  1 2 3 4 5 16 13 11 9 10 41 12 42 14 15 43 22 20 17 23 18 24 21 19 6 26 27 7 29 8 31 32 33 34 35 36 37 38 39 40 30 28 25 44 45 46 47 48 ;\r\n  1 2 19 4 21 6 7 24 9 10 11 12 13 14 15 16 17 18 43 20 45 22 23 48 30 28 25 31 26 32 29 27 8 34 35 5 37 3 39 40 41 42 38 44 36 46 47 33 ;\r\n  6 4 1 7 2 8 5 3 17 18 19 12 13 14 15 16 25 26 27 20 21 22 23 24 33 34 35 28 29 30 31 32 9 10 11 36 37 38 39 40 41 42 43 44 45 46 47 48 ;\r\n  27 29 32 4 5 6 7 8 3 10 11 2 13 1 15 16 17 18 19 20 21 22 23 24 25 26 48 28 47 30 31 46 38 36 33 39 34 40 37 35 41 42 43 44 45 9 12 14 ;\r\n  1 2 3 4 5 6 7 8 9 10 11 12 13 38 39 40 17 18 19 20 21 14 15 16 25 26 27 28 29 22 23 24 33 34 35 36 37 30 31 32 46 44 41 47 42 48 45 43 ;\r\n  41 2 3 44 5 46 7 8 16 15 14 13 12 11 10 9 40 18 19 37 21 35 23 24 25 26 27 28 29 30 31 32 33 34 22 36 20 38 39 17 1 42 43 4 45 6 47 48 ;\r\n  1 2 3 4 5 43 42 41 9 10 30 12 28 14 15 25 24 23 22 21 20 19 18 17 16 26 27 13 29 11 31 32 33 34 35 36 37 38 39 40 8 7 6 44 45 46 47 48 ;\r\n  1 2 43 4 45 6 7 48 9 10 11 12 13 14 15 16 17 18 38 20 36 22 23 33 32 31 30 29 28 27 26 25 24 34 35 21 37 19 39 40 41 42 3 44 5 46 47 8 ;\r\n  8 7 6 5 4 3 2 1 25 26 27 12 13 14 15 16 33 34 35 20 21 22 23 24 9 10 11 28 29 30 31 32 17 18 19 36 37 38 39 40 41 42 43 44 45 46 47 48 ;\r\n  48 47 46 4 5 6 7 8 32 10 11 29 13 27 15 16 17 18 19 20 21 22 23 24 25 26 14 28 12 30 31 9 40 39 38 37 36 35 34 33 41 42 43 44 45 3 2 1 ; \r\n  1 2 3 4 5 6 7 8 9 10 11 12 13 30 31 32 17 18 19 20 21 38 39 40 25 26 27 28 29 14 15 16 33 34 35 36 37 22 23 24 48 47 46 45 44 43 42 41 ];\r\n\r\n% Basic move is implemented using the rot table\r\n% cube=cube(vf(mov,:)); % mov is 1:18 represents  ufdlbru'f'd'l'b'r'u2f2d2l2b2r2\r\n% Note: only the 48 moving cube tiles are mapped\r\n% a solved cube displays as [000000001111111122222222333333334444444455555555]\r\n\r\nend","test_suite":"%%\r\n% Load max score of 50 seconds\r\nfeval(@assignin,'caller','score',50)\r\n%%\r\nglobal vf gPass\r\nPass=1;\r\n% Load rot map 18 moves : ufdlbru'f'd'l'b'r'u2f2d2l2b2r2\r\n vf=[ 17 2 3 20 5 22 7 8 11 13 16 10 15 9 12 14 41 18 19 44 21 46 23 24 25 26 27 28 29 30 31 32 33 34 6 36 4 38 39 1 40 42 43 37 45 35 47 48; \r\n  1 2 3 4 5 25 28 30 9 10 8 12 7 14 15 6 19 21 24 18 23 17 20 22 43 26 27 42 29 41 31 32 33 34 35 36 37 38 39 40 11 13 16 44 45 46 47 48 ;\r\n  1 2 38 4 36 6 7 33 9 10 11 12 13 14 15 16 17 18 3 20 5 22 23 8 27 29 32 26 31 25 28 30 48 34 35 45 37 43 39 40 41 42 19 44 21 46 47 24 ;\r\n  3 5 8 2 7 1 4 6 33 34 35 12 13 14 15 16 9 10 11 20 21 22 23 24 17 18 19 28 29 30 31 32 25 26 27 36 37 38 39 40 41 42 43 44 45 46 47 48 ;\r\n  14 12 9 4 5 6 7 8 46 10 11 47 13 48 15 16 17 18 19 20 21 22 23 24 25 26 1 28 2 30 31 3 35 37 40 34 39 33 36 38 41 42 43 44 45 32 29 27 ;\r\n  1 2 3 4 5 6 7 8 9 10 11 12 13 22 23 24 17 18 19 20 21 30 31 32 25 26 27 28 29 38 39 40 33 34 35 36 37 14 15 16 43 45 48 42 47 41 44 46 ;\r\n  40 2 3 37 5 35 7 8 14 12 9 15 10 16 13 11 1 18 19 4 21 6 23 24 25 26 27 28 29 30 31 32 33 34 46 36 44 38 39 41 17 42 43 20 45 22 47 48 ;\r\n  1 2 3 4 5 16 13 11 9 10 41 12 42 14 15 43 22 20 17 23 18 24 21 19 6 26 27 7 29 8 31 32 33 34 35 36 37 38 39 40 30 28 25 44 45 46 47 48 ;\r\n  1 2 19 4 21 6 7 24 9 10 11 12 13 14 15 16 17 18 43 20 45 22 23 48 30 28 25 31 26 32 29 27 8 34 35 5 37 3 39 40 41 42 38 44 36 46 47 33 ;\r\n  6 4 1 7 2 8 5 3 17 18 19 12 13 14 15 16 25 26 27 20 21 22 23 24 33 34 35 28 29 30 31 32 9 10 11 36 37 38 39 40 41 42 43 44 45 46 47 48 ;\r\n  27 29 32 4 5 6 7 8 3 10 11 2 13 1 15 16 17 18 19 20 21 22 23 24 25 26 48 28 47 30 31 46 38 36 33 39 34 40 37 35 41 42 43 44 45 9 12 14 ;\r\n  1 2 3 4 5 6 7 8 9 10 11 12 13 38 39 40 17 18 19 20 21 14 15 16 25 26 27 28 29 22 23 24 33 34 35 36 37 30 31 32 46 44 41 47 42 48 45 43 ;\r\n  41 2 3 44 5 46 7 8 16 15 14 13 12 11 10 9 40 18 19 37 21 35 23 24 25 26 27 28 29 30 31 32 33 34 22 36 20 38 39 17 1 42 43 4 45 6 47 48 ;\r\n  1 2 3 4 5 43 42 41 9 10 30 12 28 14 15 25 24 23 22 21 20 19 18 17 16 26 27 13 29 11 31 32 33 34 35 36 37 38 39 40 8 7 6 44 45 46 47 48 ;\r\n  1 2 43 4 45 6 7 48 9 10 11 12 13 14 15 16 17 18 38 20 36 22 23 33 32 31 30 29 28 27 26 25 24 34 35 21 37 19 39 40 41 42 3 44 5 46 47 8 ;\r\n  8 7 6 5 4 3 2 1 25 26 27 12 13 14 15 16 33 34 35 20 21 22 23 24 9 10 11 28 29 30 31 32 17 18 19 36 37 38 39 40 41 42 43 44 45 46 47 48 ;\r\n  48 47 46 4 5 6 7 8 32 10 11 29 13 27 15 16 17 18 19 20 21 22 23 24 25 26 14 28 12 30 31 9 40 39 38 37 36 35 34 33 41 42 43 44 45 3 2 1 ; \r\n  1 2 3 4 5 6 7 8 9 10 11 12 13 30 31 32 17 18 19 20 21 38 39 40 25 26 27 28 29 14 15 16 33 34 35 36 37 22 23 24 48 47 46 45 44 43 42 41 ];\r\n\r\nr=ones(1,48,'uint8'); \r\n r(1:8)=0; %5;     %Left % straight numeric mapping\r\n r(9:16)=1; %2;   %Up\r\n r(17:24)=2; %3;   %Front\r\n r(25:32)=3; %4;   %Down\r\n r(33:40)=4; %6;   %Back\r\n r(41:48)=5; %7; %Right\r\n \r\nmix=10;\r\nrmov=randi(18,[mix,1]);\r\n for i=1:length(rmov) \r\n  if i\u003e1 % Eliminate move undos\r\n  % f2 f2 or f f'  or f' f\r\n   if (rmov(i)\u003e12 \u0026\u0026 rmov(i-1)==rmov(i))||(rmov(i-1)\u003c7 \u0026\u0026 rmov(i)==rmov(i-1)+6)||...\r\n       (rmov(i-1)\u003e6  \u0026\u0026 rmov(i)==rmov(i-1)-6)    \r\n    rmov(i)=rmov(i)+1;   % 1:17 map to 2:18  18 map to 1\r\n    if rmov(i)==19,rmov(i)=1;end\r\n   end\r\n  end\r\n  r=r(vf(rmov(i),:));\r\n end\r\n\r\n\r\n%assert(isequal(your_fcn_name(x),y_correct))\r\n\r\nt0=clock;\r\nsolv_vec=Rubik_Solve_10(r)\r\ndt=etime(clock,t0)\r\n% Dubious Code Check\r\nif all(r(1:8)==r(1)) \u0026\u0026 all(r(9:16)==r(9))  \u0026\u0026 all(r(17:24)==r(17)) \u0026\u0026 ...\r\n     all(r(25:32)==r(25))  \u0026\u0026 all(r(33:40)==r(33)) \u0026\u0026 all(r(41:48)==r(41))\r\n Pass=0;\r\nend\r\n\r\nPass=Pass \u0026\u0026 length(solv_vec\u003c11);\r\n\r\nlength(solv_vec)\r\nrt=r;\r\nfor i=1:length(solv_vec)\r\n   rt=rt(vf(solv_vec(i),:));\r\n end\r\n if all(rt(1:8)==rt(1)) \u0026\u0026 all(rt(9:16)==rt(9))  \u0026\u0026 all(rt(17:24)==rt(17)) \u0026\u0026 ...\r\n     all(rt(25:32)==rt(25))  \u0026\u0026 all(rt(33:40)==rt(33)) \u0026\u0026 all(rt(41:48)==rt(41))\r\n   fprintf('Cube Solved\\n')\r\n  Pass=Pass; % No change to Pass status\r\n else\r\n  fprintf('Cube Solve Failure\\n')\r\n  Pass=0;\r\n end\r\n\r\nassert(isequal(Pass,1))\r\n\r\ngPass=Pass;\r\n\r\n%%\r\n\r\nglobal gPass vf\r\nPass1=gPass;\r\n\r\n\r\nr=ones(1,48,'uint8'); \r\n r(1:8)=0; %5;     %Left % straight numeric mapping\r\n r(9:16)=1; %2;   %Up\r\n r(17:24)=2; %3;   %Front\r\n r(25:32)=3; %4;   %Down\r\n r(33:40)=4; %6;   %Back\r\n r(41:48)=5; %7; %Right\r\nrbase=r;\r\n\r\nsum_dt=0;\r\nfor cases=1:10 \r\n r=rbase;\r\n mix=10;\r\n rmov=randi(18,[mix,1]);\r\n  for i=1:length(rmov) \r\n   if i\u003e1 % Eliminate move undos\r\n   % f2 f2 or f f'  or f' f\r\n    if (rmov(i)\u003e12 \u0026\u0026 rmov(i-1)==rmov(i))||(rmov(i-1)\u003c7 \u0026\u0026 rmov(i)==rmov(i- 1)+6)||...\r\n       (rmov(i-1)\u003e6  \u0026\u0026 rmov(i)==rmov(i-1)-6)    \r\n     rmov(i)=rmov(i)+1;   % 1:17 map to 2:18  18 map to 1\r\n     if rmov(i)==19,rmov(i)=1;end\r\n    end\r\n   end\r\n   r=r(vf(rmov(i),:));\r\n  end\r\n\r\n\r\nt0=clock;\r\nsolv_vec=Rubik_Solve_10(r)\r\ndt=etime(clock,t0)\r\nsum_dt=sum_dt+dt;\r\n\r\nPass1=Pass1 \u0026\u0026 length(solv_vec\u003c11);\r\n\r\nrt=r;\r\nfor i=1:length(solv_vec)\r\n   rt=rt(vf(solv_vec(i),:));\r\n end\r\n if all(rt(1:8)==rt(1)) \u0026\u0026 all(rt(9:16)==rt(9))  \u0026\u0026 all(rt(17:24)==rt(17)) \u0026\u0026 ...\r\n     all(rt(25:32)==rt(25))  \u0026\u0026 all(rt(33:40)==rt(33)) \u0026\u0026 all(rt(41:48)==rt(41))\r\n   fprintf('Cube Solved\\n')\r\n  Pass1=Pass1; % No change to Pass1 status\r\n else\r\n  fprintf('Cube Solve Failure\\n')\r\n  Pass1=0;\r\n end\r\n\r\nend\r\n\r\n\r\n\r\nassert(isequal(Pass1,1))\r\n\r\nif Pass1\r\n feval(@assignin,'caller','score',floor(sum_dt))\r\nend\r\n","published":true,"deleted":false,"likes_count":1,"comments_count":0,"created_by":3097,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":2,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2012-08-19T03:27:10.000Z","updated_at":"2012-08-26T03:40:30.000Z","published_at":"2012-08-19T07:18:19.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/image\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/media/image1.gif\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/image\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/media/image1.png\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/image\",\"targetMode\":\"\",\"relationshipId\":\"rId3\",\"target\":\"/media/image2.gif\"}],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eA set of cubes will be scrambled with 10 Face moves. The Challenge is to Solve all Cubes in 10 Moves or Less. Score will be by cumulative time of cubes 2 thru 11. The first cube may be used to load arrays but is still required to solve the cube. Ten moves relates to worst case 18^10 configs - 3.6e12. In actuality there are only 2.4e11 cubes at 10 turns. Brute force might not work.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:customXml w:element=\\\"image\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"height\\\" w:val=\\\"-1\\\"/\u003e\u003cw:attr w:name=\\\"width\\\" w:val=\\\"-1\\\"/\u003e\u003cw:attr w:name=\\\"relationshipId\\\" w:val=\\\"rId1\\\"/\u003e\u003c/w:customXmlPr\u003e\u003c/w:customXml\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:customXml w:element=\\\"image\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"height\\\" w:val=\\\"-1\\\"/\u003e\u003cw:attr w:name=\\\"width\\\" w:val=\\\"-1\\\"/\u003e\u003cw:attr w:name=\\\"relationshipId\\\" w:val=\\\"rId2\\\"/\u003e\u003c/w:customXmlPr\u003e\u003c/w:customXml\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:customXml w:element=\\\"image\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"height\\\" w:val=\\\"-1\\\"/\u003e\u003cw:attr w:name=\\\"width\\\" w:val=\\\"-1\\\"/\u003e\u003cw:attr w:name=\\\"relationshipId\\\" w:val=\\\"rId3\\\"/\u003e\u003c/w:customXmlPr\u003e\u003c/w:customXml\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eInput:\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e Cube vector (1x48](see Figure) with values 0:5, eight of each\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eOutput:\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e Rotation Vector of 10 or less values. Values range from 1:18\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eValues 1:18 represent the standard cube moves:ufdlbru'f'd'l'b'r'u2f2d2l2b2r2\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eExample:\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e Move of FL[2 4] requires L'F' solv_vec=[10 8] at a minimum to solve\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eCube=[00303003 44410110 11022222 22253533 53344444 11155555] as integer array\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003esolv_vec=[10 8]\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eActual solutions will be 8 to 10 values.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe Cube sites claim a capability of solving 10 moves in only 40 hrs. Not sure if they have Matlab, which can achieve 10 moves in \u0026lt;0.15 sec. Matlab with a 16GB/i5 can solve 12 moves in \u0026lt; 1.8 seconds. Unfortunately, Cody appears to have a memory/processing speed issue which makes the 11 and 12 move Challenges impossible.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:hyperlink w:docLocation=\\\"http://kociemba.org/cube.htm\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eCube Org\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e and\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"http://www.speedcubing.com/CubeSolver/CubeSolver.html\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eSpeed Cubing\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe next Cube Challenge will be to solve a fully randomized cube in as few moves as possible. With this next challenge I'll post my 3D-Cube Viewer Tool used for algorithm development.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"},{\"partUri\":\"/media/image1.gif\",\"contentType\":\"image/gif\",\"content\":\"data:image/gif;base64,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\"},{\"partUri\":\"/media/image1.png\",\"contentType\":\"image/png\",\"content\":\"data:image/png;base64,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\"},{\"partUri\":\"/media/image2.gif\",\"contentType\":\"image/gif\",\"content\":\"data:image/gif;base64,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\"}]}"}],"problem_search":{"errors":[],"problems":[{"id":931,"title":"Rubik's Mini-Cube: Solve Randomized Mini-Cube - Score : Moves","description":"The Challenge is to Solve a thoroughly scrambled Mini-Rubik's Cube(2x2x2).\r\n\r\nThe Performance metric is average number of moves for solving 500 cubes.\r\n\r\nA standard Mini-Rubik's Cube is shown in 3-D and also unfolded to identify the specific Tile-face/Vector numbering.\r\n\r\nThe faces are White-Up / Red-Left / Blue-Front / Orange-Right / Yellow-Down / Green-Back (ULFRDB)\r\n\r\nMoves are denoted as F for clockwise rotation of the Front face. F'(or FP) is CCW and F2 is F twice.  The provided function r_new=rubick_rot_mini(mov,r) implements moves 1-18: UFDLBRU'F'D'L'B'R'U2F2D2L2B2R2.\r\n\r\n\r\n\r\n\r\n\u003c\u003chttps://sites.google.com/site/razapor/matlab_cody/minicube2.png\u003e\u003e\r\n\r\n\u003c\u003chttps://sites.google.com/site/razapor/matlab_cody/miniCube_Map24_200.png\u003e\u003e\r\n\r\n\u003c\u003chttp://mathworks.com/matlabcentral/images/surf.gif\u003e\u003e\r\n\r\n\r\n  \r\n  \r\n  Input: (rubik)\r\n  \r\n  rubik: row vector of size 24\r\n  (The cube started [L=0,U=1,F=2,D=3,B=4,R=5] and then receives forty face moves.\r\n\r\n  Output: move_vec (Numeric of moves to solve)\r\n   move_vec:values 1:27 for UFDLBR U'F'D'L'B'R' U2F2D2L2B2R2 XYZX'Y'Z'X2Y2Z2\r\n\r\n* Example:\r\n* If the cube was randomized by [1 9] UD', one solution is [3 7]  which are the complements in reverse order. \r\n* Scoring is average face moves for 500 cubes\r\n* Cube Moves X, Y, and Z do not constitute a move but are needed in the vector \r\n* A string to numeric value function is provided in the template\r\n* Verifications will be by executing your move vector against the provided Rubik and counting number of face moves.\r\n\r\nThe function rubik_rot_mini(mov,r) is provided in the template.\r\n\r\n\r\nThe Function Template Contains a 3D Cube Viewer and the first step in solving is at the bottom in a comment block.\r\n\r\n\r\n* \r\n* \u003chttp://kociemba.org/cube.htm Cube Theory: 20-moves Any Cube\u003e \r\n* \u003chttp://peter.stillhq.com/jasmine/rubikscubesolution.html General Cube Info and Middle Layer\u003e\r\n* \u003chttp://www.speedcubing.com/final_layer_print.html SpeedCube Bottom Sequences\u003e\r\n(Note: Mini-Cube can use the full cube moves and ignore edge effects)\r\n\r\n\r\nComing Soon: The Mini-Cube  (2x2x2): Full Random - Eleven or Less Moves","description_html":"\u003cp\u003eThe Challenge is to Solve a thoroughly scrambled Mini-Rubik's Cube(2x2x2).\u003c/p\u003e\u003cp\u003eThe Performance metric is average number of moves for solving 500 cubes.\u003c/p\u003e\u003cp\u003eA standard Mini-Rubik's Cube is shown in 3-D and also unfolded to identify the specific Tile-face/Vector numbering.\u003c/p\u003e\u003cp\u003eThe faces are White-Up / Red-Left / Blue-Front / Orange-Right / Yellow-Down / Green-Back (ULFRDB)\u003c/p\u003e\u003cp\u003eMoves are denoted as F for clockwise rotation of the Front face. F'(or FP) is CCW and F2 is F twice.  The provided function r_new=rubick_rot_mini(mov,r) implements moves 1-18: UFDLBRU'F'D'L'B'R'U2F2D2L2B2R2.\u003c/p\u003e\u003cimg src=\"https://sites.google.com/site/razapor/matlab_cody/minicube2.png\"\u003e\u003cimg src=\"https://sites.google.com/site/razapor/matlab_cody/miniCube_Map24_200.png\"\u003e\u003cimg src=\"http://mathworks.com/matlabcentral/images/surf.gif\"\u003e\u003cpre class=\"language-matlab\"\u003eInput: (rubik)\r\n\u003c/pre\u003e\u003cpre class=\"language-matlab\"\u003erubik: row vector of size 24\r\n(The cube started [L=0,U=1,F=2,D=3,B=4,R=5] and then receives forty face moves.\r\n\u003c/pre\u003e\u003cpre class=\"language-matlab\"\u003eOutput: move_vec (Numeric of moves to solve)\r\n move_vec:values 1:27 for UFDLBR U'F'D'L'B'R' U2F2D2L2B2R2 XYZX'Y'Z'X2Y2Z2\r\n\u003c/pre\u003e\u003cul\u003e\u003cli\u003eExample:\u003c/li\u003e\u003cli\u003eIf the cube was randomized by [1 9] UD', one solution is [3 7]  which are the complements in reverse order.\u003c/li\u003e\u003cli\u003eScoring is average face moves for 500 cubes\u003c/li\u003e\u003cli\u003eCube Moves X, Y, and Z do not constitute a move but are needed in the vector\u003c/li\u003e\u003cli\u003eA string to numeric value function is provided in the template\u003c/li\u003e\u003cli\u003eVerifications will be by executing your move vector against the provided Rubik and counting number of face moves.\u003c/li\u003e\u003c/ul\u003e\u003cp\u003eThe function rubik_rot_mini(mov,r) is provided in the template.\u003c/p\u003e\u003cp\u003eThe Function Template Contains a 3D Cube Viewer and the first step in solving is at the bottom in a comment block.\u003c/p\u003e\u003cul\u003e\u003cli\u003e\u003c/li\u003e\u003cli\u003e\u003ca href=\"http://kociemba.org/cube.htm\"\u003eCube Theory: 20-moves Any Cube\u003c/a\u003e\u003c/li\u003e\u003cli\u003e\u003ca href=\"http://peter.stillhq.com/jasmine/rubikscubesolution.html\"\u003eGeneral Cube Info and Middle Layer\u003c/a\u003e\u003c/li\u003e\u003cli\u003e\u003ca href=\"http://www.speedcubing.com/final_layer_print.html\"\u003eSpeedCube Bottom Sequences\u003c/a\u003e\r\n(Note: Mini-Cube can use the full cube moves and ignore edge effects)\u003c/li\u003e\u003c/ul\u003e\u003cp\u003eComing Soon: The Mini-Cube  (2x2x2): Full Random - Eleven or Less Moves\u003c/p\u003e","function_template":"function solve_vec = rubik_solve_mini(r)\r\n% Expect Numeric representation of moves (1:27):\r\n% 1:27 are ufdlbr upfpdplpbprp u2f2d2l2b2r2 xyzxpypzpx2y2z2\r\n solve_vec=[]; \r\nend\r\n\r\nfunction r=rubik_rot_mini(mov,r)\r\n%mov is 1:27;  1-6 UFDLBR 7-12 U'F;D'L'B'R' 13-18 U2F2D2L2B2R2 \r\n%             19-27 XYZ X'Y'Z' X2Y2Z2  \r\n% X cube-R, Y cube-U,  Z cube-F\r\n%\r\n% r is a 24 element row vector\r\n% r output is a single row vector \r\n%\r\n% vector mov\r\n% r output is array of length(mov) x 24\r\n%\r\n% Perform Rubik Cube face rotations and cube rotations\r\n% L 1:4 U 5:8 F 9:12 D 13:16 B 17:20 R 21:24 \r\n% \r\npersistent vf\r\nif isempty(vf) %\r\nvf=[9 2 11 4 6 8 5 7 21 10 23 12 13 14 15 16 17 3 19 1 20 22 18 24 ; \r\n    1 2 13 15 5 4 7 3 10 12 9 11 22 14 21 16 17 18 19 20 6 8 23 24 ;\r\n    1 19 3 17 5 6 7 8 9 2 11 4 14 16 13 15 24 18 22 20 21 10 23 12 ;\r\n    2 4 1 3 17 18 7 8 5 6 11 12 9 10 15 16 13 14 19 20 21 22 23 24 ;\r\n    7 5 3 4 23 6 24 8 9 10 11 12 13 1 15 2 18 20 17 19 21 22 16 14 ;\r\n    1 2 3 4 5 6 11 12 9 10 15 16 13 14 19 20 17 18 7 8 22 24 21 23 ;\r\n    20 2 18 4 7 5 8 6 1 10 3 12 13 14 15 16 17 23 19 21 9 22 11 24 ;\r\n    1 2 8 6 5 21 7 22 11 9 12 10 3 14 4 16 17 18 19 20 15 13 23 24 ;\r\n    1 10 3 12 5 6 7 8 9 22 11 24 15 13 16 14 4 18 2 20 21 19 23 17 ;\r\n    3 1 4 2 9 10 7 8 13 14 11 12 17 18 15 16 5 6 19 20 21 22 23 24 ;\r\n    14 16 3 4 2 6 1 8 9 10 11 12 13 24 15 23 19 17 20 18 21 22 5 7 ;\r\n    1 2 3 4 5 6 19 20 9 10 7 8 13 14 11 12 17 18 15 16 23 21 24 22 ;\r\n    21 2 23 4 8 7 6 5 20 10 18 12 13 14 15 16 17 11 19 9 1 22 3 24 ;\r\n    1 2 22 21 5 15 7 13 12 11 10 9 8 14 6 16 17 18 19 20 4 3 23 24 ;\r\n    1 22 3 24 5 6 7 8 9 19 11 17 16 15 14 13 12 18 10 20 21 2 23 4 ;\r\n    4 3 2 1 13 14 7 8 17 18 11 12 5 6 15 16 9 10 19 20 21 22 23 24 ;\r\n    24 23 3 4 16 6 14 8 9 10 11 12 13 7 15 5 20 19 18 17 21 22 2 1 ;\r\n    1 2 3 4 5 6 15 16 9 10 19 20 13 14 7 8 17 18 11 12 24 23 22 21 ;\r\n    3 1 4 2 9 10 11 12 13 14 15 16 17 18 19 20 5 6 7 8 22 24 21 23 ;\r\n    9 10 11 12 6 8 5 7 21 22 23 24 15 13 16 14 4 3 2 1 20 19 18 17 ;\r\n    14 16 13 15 2 4 1 3 10 12 9 11 22 24 21 23 19 17 20 18 6 8 5 7 ;\r\n    2 4 1 3 17 18 19 20 5 6 7 8 9 10 11 12 13 14 15 16 23 21 24 22 ;\r\n    20 19 18 17 7 5 8 6 1 2 3 4 14 16 13 15 24 23 22 21 9 10 11 12 ;\r\n    7 5 8 6 23 21 24 22 11 9 12 10 3 1 4 2 18 20 17 19 15 13 16 14 ;\r\n    4 3 2 1 13 14 15 16 17 18 19 20 5 6 7 8 9 10 11 12 24 23 22 21 ;\r\n    21 22 23 24 8 7 6 5 20 19 18 17 16 15 14 13 12 11 10 9 1 2 3 4 ; \r\n    24 23 22 21 16 15 14 13 12 11 10 9 8 7 6 5 20 19 18 17 4 3 2 1 ];\r\nend\r\n\r\nr=r(vf(mov,:));\r\nend\r\n\r\n\r\nfunction move_vec=decode27_movestr_rev001(movestr)\r\n% Active character Inputs: UFDLBRXYZ, GQ are pre-processed\r\n% 1-6 UFDLBR 7-12 U'F;D'L'B'R' 13-18 U2F2D2L2B2R2 19-27 XYZX'Y'Z'X2Y2Z2\r\nmovestr=upper(movestr);\r\nmovestr=strrep(movestr,'''','P'); % simplify further searches\r\n\r\nmovestr=strrep(movestr,'UP',' 7 ');\r\nmovestr=strrep(movestr,'FP',' 8 ');\r\nmovestr=strrep(movestr,'DP',' 9 ');\r\nmovestr=strrep(movestr,'LP',' 10 ');\r\nmovestr=strrep(movestr,'BP',' 11 ');\r\nmovestr=strrep(movestr,'RP',' 12 ');\r\nmovestr=strrep(movestr,'U2',' 13 ');\r\nmovestr=strrep(movestr,'F2',' 14 ');\r\nmovestr=strrep(movestr,'D2',' 15 ');\r\nmovestr=strrep(movestr,'L2',' 16 ');\r\nmovestr=strrep(movestr,'B2',' 17 ');\r\nmovestr=strrep(movestr,'R2',' 18 ');\r\nmovestr=strrep(movestr,'U',' 1 ');\r\nmovestr=strrep(movestr,'F',' 2 ');\r\nmovestr=strrep(movestr,'D',' 3 ');\r\nmovestr=strrep(movestr,'L',' 4 ');\r\nmovestr=strrep(movestr,'B',' 5 ');\r\nmovestr=strrep(movestr,'R',' 6 ');\r\nmovestr=strrep(movestr,'XP',' 22 ');\r\nmovestr=strrep(movestr,'YP',' 23 ');\r\nmovestr=strrep(movestr,'ZP',' 24 ');\r\nmovestr=strrep(movestr,'X2',' 25 ');\r\nmovestr=strrep(movestr,'Y2',' 26 ');\r\nmovestr=strrep(movestr,'Z2',' 27 ');\r\nmovestr=strrep(movestr,'X',' 19 ');\r\nmovestr=strrep(movestr,'Y',' 20 ');\r\nmovestr=strrep(movestr,'Z',' 21 ');\r\n\r\nmove_vec=str2num(movestr);\r\n\r\nend % move_vec\r\n\r\n\r\n%{\r\n% 3D Viewer and Development Environment\r\n\r\n\r\nfunction RubikMini_3D_2724_Solver_viewer\r\n%Rubiks Mini-Cube Play\r\n%Creator: Richard Zapor\r\n% 09/01/12\r\nclear all\r\nglobal pmap plate zCmap r  % For 3D  viewer\r\n\r\n% initialize cube\r\n r(1:4)=0;     %Left   0 R\r\n r(5:8)=1;     %Up     1 W\r\n r(9:12)=2;    %Front  2 B\r\n r(13:16)=3;   %Down   3 Y\r\n r(17:20)=4;   %Back   4 G\r\n r(21:24)=5;   %Right  5 O\r\n rnorm=r;\r\n \r\n % Map 3D platelettes and surfaces\r\n [pmap plate]=cube_faces; % One time association of array to 3D surfaces\r\n  % zCmap=[0,0,0;1,1,1;0,0,1;1,1,0;1,0,0;0,1,0;1,.6,0]; \r\n  % 1-Blk,2-Wht,3-Blu,4-Yellow,5-Red,6-Green,7-Orange\r\n  \r\n  zCmap=[0,0,0;1,0,0;1,1,1;0,0,1;1,1,0;0,1,0;1,.6,0]; \r\n  % 1-Blk,2-Red,3-Wht,4-Blu,5-Yellow,6-Green,7-Orange\r\n\r\n% Initialize 3D figure\r\nfigure(2);set(gca,'CameraPosition',[6 -2 7]); % Initial 3D setup\r\n   axis ([-1 4 -1 4 -1 4]);\r\n   axis equal % This is slow but needed for free rotate 1.2 sec\r\n   axis off\r\nview3D % Calls subroutine that produces a 3D image in figure 2\r\n\r\n% r=rubik_rot2(r,mov)\r\n% mov is 1:27;  1-6 UFDLB 7-12 U'F;D'L'B' 13-18 U2F2D2L2B2 \r\n%             22-27 XYZ X'Y'Z' X2Y2Z2  \r\n% X cube-R, Y cube-U,  Z cube-F\r\n\r\nfprintf('Move Entry (UFDLBRXYZ) eg U U2 U'' (or Up) or G=GoReset P=Play Q-Quit  :\\n');\r\nwhile 1 % Infinite loop\r\n str1=input('Enter Move(s):','s');\r\n if isempty(str1),continue;end\r\n movestr1=regexp(upper(strtrim(str1)),'\\s*','split');\r\n if movestr1{1}=='P',break;end\r\n if movestr1{1}=='Q',return;end\r\n if movestr1{1}=='G'\r\n  r=rnorm;\r\n  view3D\r\n  continue;\r\n end\r\n \r\n move_vec=decode27_movestr_rev001(str1);\r\n \r\n for i=1:length(move_vec) \r\n  r=rubik_rot_mini(move_vec(i),r);\r\n end\r\n% view3D\r\n\r\n \r\nend % while move manipulation practice loop\r\n\r\n% Setup Cube and Play\r\n\r\nfprintf('\\n\\nSolve Multiple Cubes\\n')\r\nzcnt=0;\r\nsum_solve=0;\r\nmin_solve=1000;\r\nmax_solve=0;\r\ntic\r\nwhile 1 % Games loop\r\n    mix=40; % Very random cube\r\n    zcnt=zcnt+1;\r\n    if zcnt\u003e100,break;end\r\n% mix=input('\\n\\nHow many random face rotations? (0=Exit) : ');\r\n% if isempty(mix),continue;end\r\n\r\n r=rnorm;\r\n % Initial mix\r\n mov=randi(18,[mix,1]); % do one create movr=randi(18,zcnt,mix) mov=movr(zcnt,:)\r\n for i=1:length(mov) \r\n  if i\u003e1 % Eliminate move undos\r\n  % f2 f2 or f f'  or f' f\r\n   if (mov(i)\u003e12 \u0026\u0026 mov(i-1)==mov(i))||(mov(i-1)\u003c7 \u0026\u0026 mov(i)==mov(i-1)+6)||...\r\n       (mov(i-1)\u003e6  \u0026\u0026 mov(i)==mov(i-1)-6)    \r\n    mov(i)=mov(i)+1;   % 1:17 map to 2:18  18 map to 1\r\n    if mov(i)==19,mov(i)=1;end\r\n   end\r\n  end\r\n  r=rubik_rot_mini(mov(i),r);\r\n end\r\n \r\n r_reset=r;\r\n \r\n solve_vec=[];\r\n \r\n % Check cube for Good face and Edges\r\n % Place on Up; Solve Cross/Corners with u u' or u2\r\n % Assures single move i solved in 1 move, may solve at bottom solid face\r\n % check\r\n \r\n% Insert Solution Code Here\r\n \r\n % Orient Cube R-L W-U B-F  RWB\r\n % Sequence thru BWO OWG GWR  to Solve Top Corners\r\n % Flip Cube to Solve Bottom Layer\r\n % Apply SpeedCube Corner Rotate Algorithms if Bot not Solid or Solved\r\n % If not solved Apply SpeedCube Corner Rotate/Move Algorithms\r\n \r\n % Orient Cube using XYZ to be RWB 3-6-9 RL-WU-BF\r\n  movestr=solve_orient_str(r);\r\n  move_vec=decode27_movestr_rev001(movestr);\r\n   \r\n  move_vec=[move_vec 20]; % add a Y to get to next face\r\n  solve_vec=[solve_vec move_vec];\r\n  \r\n  for i=1:length(move_vec) \r\n   r=rubik_rot_mini(move_vec(i),r);\r\n  end\r\n % end Orient Start Cube\r\n \r\n  % Solve Top Corners\r\n  for corners=2:4 % Solve Top corners TLFC, First Corner Solved\r\n   movestr='';\r\n%   movestr=solve_corners_str(r); % Not provided\r\n   move_vec=decode27_movestr_rev001(movestr);\r\n   \r\n   move_vec=[move_vec 20]; % add a Y to get to next face\r\n   solve_vec=[solve_vec move_vec];\r\n   \r\n   for i=1:length(move_vec) \r\n    r=rubik_rot_mini(move_vec(i),r);\r\n   end\r\n  end % corners\r\n  \r\n  % Solve Bottom by flipping to Top and running SpeedCube Sequences\r\n  \r\n  % Position Bottom to Top\r\n  r=rubik_rot_mini(25,r); % x2\r\n  solve_vec=[solve_vec 25];\r\n  \r\n  solved=0;\r\n  % Function Check u-rotate/solve\r\n  % Is Bottom layer solveable? Needs only a u u' or u2\r\n  if all(r(5:8)==r(5)) \u0026\u0026 r(1)==r(3)  \u0026\u0026 r(9)==r(11) \u0026\u0026 ...\r\n     r(21)==r(23)  \u0026\u0026 r(20)==r(18)\r\n   %Appears to have a U rotate solution\r\n   f_edge_loc=find(r([9 21 20 1])==r(10),1,'first');\r\n   %if isempty(f_edge_loc),continue;end % Bottom not solved\r\n   %if f_edge_loc==1, do nothing;end it is in right location\r\n   if f_edge_loc==2\r\n    r=rubik_rot_mini(1,r);\r\n    solve_vec=[solve_vec 1];\r\n   end\r\n   if f_edge_loc==3\r\n    r=rubik_rot_mini(13,r);\r\n    solve_vec=[solve_vec 13];\r\n   end\r\n   if f_edge_loc==4\r\n    r=rubik_rot_mini(7,r);\r\n    solve_vec=[solve_vec 7];\r\n   end\r\n   solved=1;\r\n%fprintf('U Rotate Solve Success\\n')\r\n  end % Bottom layer rotate to solve\r\n  \r\n  if ~all(r(5:8)==r(5)) % Multiple top face invalid - Try Quick full solve\r\n    movestr='';\r\n%    [movestr solved]=full_solve_bottom_str(r); % Not provided\r\n    if solved\r\n% fprintf('H Quick Full Solve Success\\n')\r\n%      view3D\r\n     move_vec=decode27_movestr_rev001(movestr);\r\n     solve_vec=[solve_vec move_vec];\r\n     for i=1:length(move_vec) \r\n      r=rubik_rot_mini(move_vec(i),r);\r\n     end\r\n%      view3D\r\n    end % Solved\r\n  end\r\n   \r\n \r\n  if ~solved % Execute Full Speed Cube Two Tier Methods\r\n    movestr='';\r\n %    movestr=solve_bottom_str(r); % Not provided\r\n    move_vec=decode27_movestr_rev001(movestr);\r\n   \r\n    solve_vec=[solve_vec move_vec];\r\n   \r\n    for i=1:length(move_vec) \r\n     r=rubik_rot_mini(move_vec(i),r);\r\n    end\r\n  end\r\n  \r\n% Normal Cube Return Point\r\n  \r\n % Verify Solution and Generate Statistics\r\n  if all(r(1:4)==r(4)) \u0026\u0026 all(r(5:8)==r(8))  \u0026\u0026 all(r(9:12)==r(9)) \u0026\u0026 ...\r\n     all(r(13:16)==r(13))  \u0026\u0026 all(r(17:20)==r(17)) \u0026\u0026 all(r(21:24)==r(21))\r\n   solve_vec(solve_vec\u003e18)=[]; % \r\n   lsolve=length(solve_vec);\r\n   sum_solve=sum_solve+lsolve;\r\n   min_solve=min(min_solve,lsolve);\r\n   max_solve=max(max_solve,lsolve);\r\n   asolve=floor(sum_solve/zcnt);\r\n   fprintf('Cube Solved Moves=%i  Avg Moves=%i min=%i  max=%i\\n',lsolve,asolve,min_solve,max_solve)\r\n  else % Deug info\r\n   fprintf('\\n\\nCube NOT Solved???\\n\\n') \r\n   fprintf('%i ',r); % Current ending data\r\n   fprintf('\\n')\r\n   fprintf('%i ',r_reset); % Starting Cube\r\n   view3D \r\n   pause(1) % Big Long pause\r\n  end\r\n  \r\nend % Games Loop\r\ntoc\r\n\r\n%view3D % appearance of final cube\r\n\r\nfprintf('\\n\\nThank You for Playing\\n\\nPlease come again.\\n')\r\n\r\nend\r\n\r\n\r\n\r\n\r\n\r\n\r\nfunction  movestr=solve_orient_str(r)\r\n% % initialize cube\r\n%  r(1:4)=0;     %Left   0 R\r\n%  r(5:8)=1;     %Up     1 W\r\n%  r(9:12)=2;    %Front  2 B\r\n%  r(13:16)=3;   %Down   3 Y\r\n%  r(17:20)=4;   %Back   4 G\r\n%  r(21:24)=5;   %Right  5 O\r\npersistent m\r\nif isempty(m) % all moves leave possibly valid corners and cross alone\r\n    % w  r  b\r\n m={[ 6  3  9  ''];\r\n    [ 8 11 21  'y'];  \r\n    [ 7 23 20  'y2']; \r\n    [ 5 18  1  'yp'];\r\n    [10  4 13  'x'];\r\n    [14  2 17  'x2'];\r\n    [18  1  5  'xp'];\r\n    [ 4 13 10  'z'];\r\n    [15 22 12  'z2'];\r\n    [21  8 11  'zp'];\r\n    [12 15 22  'zx']; \r\n    [11 21  8  'z2x'];\r\n    [ 9  6  3  'zpx'];\r\n    [ 2 17 14  'ypx'];\r\n    [ 1  5 18  'x2z'];\r\n    [ 3  9  6  'xpz'];\r\n    [22 12 15  'yx'];\r\n    [23 20  7  'xpzp'];\r\n    [24 16 19  'x2zp'];\r\n    [20  7 23  'xpy'];\r\n    [17 14  2  'ypz'];\r\n    [19 24 16  'y2x'];\r\n    [13 10  4  'yx2']; \r\n    [16 19 24  'x2y']}; \r\nend\r\n u=1; % value of top\r\n L=0; % value of left face\r\n f=2; % value of front face\r\n for ptr=1:24\r\n  if r(abs(m{ptr}(1)))==u \u0026\u0026 r(abs(m{ptr}(2)))==L \u0026\u0026 r(abs(m{ptr}(3)))==f, break;end\r\n end\r\n \r\nmovestr=m{ptr}(4:end);\r\nend % solve orient\r\n\r\nfunction move_vec=decode27_movestr_rev001(movestr)\r\n% Active character Inputs: UFDLBRXYZ, GQ are pre-processed\r\n% 1-6 UFDLBR 7-12 U'F;D'L'B'R' 13-18 U2F2D2L2B2R2 19-27 XYZX'Y'Z'X2Y2Z2\r\nmovestr=upper(movestr);\r\nmovestr=strrep(movestr,'''','P'); % simplify further searches\r\n\r\nmovestr=strrep(movestr,'UP',' 7 ');\r\nmovestr=strrep(movestr,'FP',' 8 ');\r\nmovestr=strrep(movestr,'DP',' 9 ');\r\nmovestr=strrep(movestr,'LP',' 10 ');\r\nmovestr=strrep(movestr,'BP',' 11 ');\r\nmovestr=strrep(movestr,'RP',' 12 ');\r\nmovestr=strrep(movestr,'U2',' 13 ');\r\nmovestr=strrep(movestr,'F2',' 14 ');\r\nmovestr=strrep(movestr,'D2',' 15 ');\r\nmovestr=strrep(movestr,'L2',' 16 ');\r\nmovestr=strrep(movestr,'B2',' 17 ');\r\nmovestr=strrep(movestr,'R2',' 18 ');\r\nmovestr=strrep(movestr,'U',' 1 ');\r\nmovestr=strrep(movestr,'F',' 2 ');\r\nmovestr=strrep(movestr,'D',' 3 ');\r\nmovestr=strrep(movestr,'L',' 4 ');\r\nmovestr=strrep(movestr,'B',' 5 ');\r\nmovestr=strrep(movestr,'R',' 6 ');\r\nmovestr=strrep(movestr,'XP',' 22 ');\r\nmovestr=strrep(movestr,'YP',' 23 ');\r\nmovestr=strrep(movestr,'ZP',' 24 ');\r\nmovestr=strrep(movestr,'X2',' 25 ');\r\nmovestr=strrep(movestr,'Y2',' 26 ');\r\nmovestr=strrep(movestr,'Z2',' 27 ');\r\nmovestr=strrep(movestr,'X',' 19 ');\r\nmovestr=strrep(movestr,'Y',' 20 ');\r\nmovestr=strrep(movestr,'Z',' 21 ');\r\n\r\nmove_vec=str2num(movestr);\r\n\r\nend % move_vec\r\n\r\nfunction view3D\r\n global pmap plate zCmap r\r\n  hold on;\r\n  for i=1:24\r\n    idx=pmap(i);\r\n    fill3(plate(i,1:4),plate(i,5:8),plate(i,9:12),zCmap(r(idx)+2,:),'LineWidth',2)  \r\n  end\r\n  hold off\r\n\r\nend\r\n\r\nfunction [pmap plate]=cube_faces()\r\n%global pmap plate\r\n% Sequence that cube faces are filled   \r\n  pmap=[ 2  4     1  3          ...\r\n        10 12     9 11          ...\r\n        24 22    23 21          ...\r\n        17 19    18 20          ...\r\n         5  7     6  8          ...\r\n        14 16    13 15          ];\r\n plate=zeros(54,12);\r\n % Could optimize creation or load from mat\r\n % Four 3D corners x1 x2 x3 x4 y1 y2 y3 y4 z1 z2 z3 z4\r\n plate(1,:)=[0 1 1 0 0 0 0 0 0 0 1 1]; \r\n plate(2,:)=[1 2 2 1 0 0 0 0 0 0 1 1]; \r\n plate(3,:)=[0 1 1 0 0 0 0 0 1 1 2 2]; \r\n plate(4,:)=[1 2 2 1 0 0 0 0 1 1 2 2]; \r\n \r\n plate(5,:)=[2 2 2 2 0 1 1 0 0 0 1 1];\r\n plate(6,:)=[2 2 2 2 1 2 2 1 0 0 1 1];\r\n plate(7,:)=[2 2 2 2 0 1 1 0 1 1 2 2];\r\n plate(8,:)=[2 2 2 2 1 2 2 1 1 1 2 2];\r\n \r\n plate(9:12,:)=plate(1:4,:);\r\n plate(9:12,5:8)=repmat(2,4,4);\r\n \r\n plate(13:16,:)=plate(5:8,:);\r\n plate(13:16,1:4)=zeros(4,4); %repmat(0,4,4); \r\n \r\n plate(17,:)=[0 1 1 0 0 0 1 1 2 2 2 2]; \r\n plate(18,:)=[0 1 1 0 1 1 2 2 2 2 2 2]; \r\n plate(19,:)=[1 2 2 1 0 0 1 1 2 2 2 2]; \r\n plate(20,:)=[1 2 2 1 1 1 2 2 2 2 2 2];\r\n\r\n plate(21:24,:)=plate(17:20,:);\r\n plate(21:24,9:12)=zeros(4,4); %repmat(0,4,4);  %\r\n  \r\nend\r\n\r\nfunction r=rubik_rot_mini(mov,r)\r\n%mov is 1:27;  1-6 UFDLBR 7-12 U'F;D'L'B'R' 13-18 U2F2D2L2B2R2 \r\n%             19-27 XYZ X'Y'Z' X2Y2Z2  \r\n% X cube-R, Y cube-U,  Z cube-F\r\n%\r\n% r is a 24 element row vector\r\n% r output is a single row vector \r\n%\r\n% vector mov\r\n% r output is array of length(mov) x 24\r\n%\r\n% Perform Rubik Cube face rotations and cube rotations\r\n% L 1:4 U 5:8 F 9:12 D 13:16 B 17:20 R 21:24 \r\n% \r\npersistent vf\r\nif isempty(vf) %\r\nvf=[ 9  2  11  4  6   8   5   7 21  10   23  12 13  14  15  16 17   3   19   1 20  22   18  24 ; \r\n     1  2  13 15  5   4   7   3 10  12    9  11 22  14  21  16 17  18   19  20  6   8   23  24 ;\r\n     1 19   3 17  5   6   7   8  9   2   11   4 14  16  13  15 24  18   22  20 21  10   23  12 ;\r\n     2  4   1  3 17  18   7   8  5   6   11  12  9  10  15  16 13  14   19  20 21  22   23  24 ;\r\n     7  5   3  4 23   6  24   8  9  10   11  12 13   1  15   2 18  20   17  19 21  22   16  14 ;\r\n     1  2   3  4  5   6  11  12  9  10   15  16 13  14  19  20 17  18    7   8 22  24   21  23 ;\r\n    20  2  18  4  7   5   8   6  1  10    3  12 13  14  15  16 17  23   19  21  9  22   11  24 ;\r\n     1  2   8  6  5  21   7  22 11   9   12  10  3  14   4  16 17  18   19  20 15  13   23  24 ;\r\n     1 10   3 12  5   6   7   8  9  22   11  24 15  13  16  14  4  18    2  20 21  19   23  17 ;\r\n     3  1   4  2  9  10   7   8 13  14   11  12 17  18  15  16  5   6   19  20 21  22   23  24 ;\r\n    14 16   3  4  2   6   1   8  9  10   11  12 13  24  15  23 19  17   20  18 21  22    5   7 ;\r\n     1  2   3  4  5   6  19  20  9  10    7   8 13  14  11  12 17  18   15  16 23  21   24  22 ;\r\n    21  2  23  4  8   7   6   5 20  10   18  12 13  14  15  16 17  11   19   9  1  22    3  24 ;\r\n     1  2  22 21  5  15   7  13 12  11   10   9  8  14   6  16 17  18   19  20  4   3   23  24 ;\r\n     1 22   3 24  5   6   7   8  9  19   11  17 16  15  14  13 12  18   10  20 21   2   23   4 ;\r\n     4  3   2  1 13  14   7   8 17  18   11  12  5   6  15  16  9  10   19  20 21  22   23  24 ;\r\n    24 23   3  4 16   6  14   8  9  10   11  12 13   7  15   5 20  19   18  17 21  22    2   1 ;\r\n     1  2   3  4  5   6  15  16  9  10   19  20 13  14   7   8 17  18   11  12 24  23   22  21 ;\r\n     3  1   4  2  9  10  11  12 13  14   15  16 17  18  19  20  5   6    7   8 22  24   21  23 ;\r\n     9 10  11 12  6   8   5   7 21  22   23  24 15  13  16  14  4   3    2   1 20  19   18  17 ;\r\n    14 16  13 15  2   4   1   3 10  12    9  11 22  24  21  23 19  17   20  18  6   8    5   7 ;\r\n     2  4   1  3 17  18  19  20  5   6    7   8  9  10  11  12 13  14   15  16 23  21   24  22 ;\r\n    20 19  18 17  7   5   8   6  1   2    3   4 14  16  13  15 24  23   22  21  9  10   11  12 ;\r\n     7  5   8  6 23  21  24  22 11   9   12  10  3   1   4   2 18  20   17  19 15  13   16  14 ;\r\n     4  3   2  1 13  14  15  16 17  18   19  20  5   6   7   8  9  10   11  12 24  23   22  21 ;\r\n    21 22  23 24  8   7   6   5 20  19   18  17 16  15  14  13 12  11   10   9  1   2    3   4 ; \r\n    24 23  22 21 16  15  14  13 12  11   10   9  8   7   6   5 20  19   18  17  4   3    2   1 ];\r\nend\r\n\r\nr=r(vf(mov,:));\r\nend\r\n\r\n\r\n\r\n%}\r\n\r\n\r\n","test_suite":"%%\r\nfeval(@assignin,'caller','score',0);\r\n%%\r\nvf=[9 2 11 4 6 8 5 7 21 10 23 12 13 14 15 16 17 3 19 1 20 22 18 24 ; \r\n    1 2 13 15 5 4 7 3 10 12 9 11 22 14 21 16 17 18 19 20 6 8 23 24 ;\r\n    1 19 3 17 5 6 7 8 9 2 11 4 14 16 13 15 24 18 22 20 21 10 23 12 ;\r\n    2 4 1 3 17 18 7 8 5 6 11 12 9 10 15 16 13 14 19 20 21 22 23 24 ;\r\n    7 5 3 4 23 6 24 8 9 10 11 12 13 1 15 2 18 20 17 19 21 22 16 14 ;\r\n    1 2 3 4 5 6 11 12 9 10 15 16 13 14 19 20 17 18 7 8 22 24 21 23 ;\r\n    20 2 18 4 7 5 8 6 1 10 3 12 13 14 15 16 17 23 19 21 9 22 11 24 ;\r\n    1 2 8 6 5 21 7 22 11 9 12 10 3 14 4 16 17 18 19 20 15 13 23 24 ;\r\n    1 10 3 12 5 6 7 8 9 22 11 24 15 13 16 14 4 18 2 20 21 19 23 17 ;\r\n    3 1 4 2 9 10 7 8 13 14 11 12 17 18 15 16 5 6 19 20 21 22 23 24 ;\r\n    14 16 3 4 2 6 1 8 9 10 11 12 13 24 15 23 19 17 20 18 21 22 5 7 ;\r\n    1 2 3 4 5 6 19 20 9 10 7 8 13 14 11 12 17 18 15 16 23 21 24 22 ;\r\n    21 2 23 4 8 7 6 5 20 10 18 12 13 14 15 16 17 11 19 9 1 22 3 24 ;\r\n    1 2 22 21 5 15 7 13 12 11 10 9 8 14 6 16 17 18 19 20 4 3 23 24 ;\r\n    1 22 3 24 5 6 7 8 9 19 11 17 16 15 14 13 12 18 10 20 21 2 23 4 ;\r\n    4 3 2 1 13 14 7 8 17 18 11 12 5 6 15 16 9 10 19 20 21 22 23 24 ;\r\n    24 23 3 4 16 6 14 8 9 10 11 12 13 7 15 5 20 19 18 17 21 22 2 1 ;\r\n    1 2 3 4 5 6 15 16 9 10 19 20 13 14 7 8 17 18 11 12 24 23 22 21 ;\r\n    3 1 4 2 9 10 11 12 13 14 15 16 17 18 19 20 5 6 7 8 22 24 21 23 ;\r\n    9 10 11 12 6 8 5 7 21 22 23 24 15 13 16 14 4 3 2 1 20 19 18 17 ;\r\n    14 16 13 15 2 4 1 3 10 12 9 11 22 24 21 23 19 17 20 18 6 8 5 7 ;\r\n    2 4 1 3 17 18 19 20 5 6 7 8 9 10 11 12 13 14 15 16 23 21 24 22 ;\r\n    20 19 18 17 7 5 8 6 1 2 3 4 14 16 13 15 24 23 22 21 9 10 11 12 ;\r\n    7 5 8 6 23 21 24 22 11 9 12 10 3 1 4 2 18 20 17 19 15 13 16 14 ;\r\n    4 3 2 1 13 14 15 16 17 18 19 20 5 6 7 8 9 10 11 12 24 23 22 21 ;\r\n    21 22 23 24 8 7 6 5 20 19 18 17 16 15 14 13 12 11 10 9 1 2 3 4 ; \r\n    24 23 22 21 16 15 14 13 12 11 10 9 8 7 6 5 20 19 18 17 4 3 2 1 ];\r\n\r\n%r=r(vf(mov,:));  % Standard move, r=rubik_rot_min(mov,r);\r\n\r\nPass=1;\r\nr_fail=0;\r\n% Execute 500 cubes and verify completeness and count moves\r\n % initialize cube\r\n r(1:4)=0;     %Left   0 R\r\n r(5:8)=1;     %Up     1 W\r\n r(9:12)=2;    %Front  2 B\r\n r(13:16)=3;   %Down   3 Y\r\n r(17:20)=4;   %Back   4 G\r\n r(21:24)=5;   %Right  5 O\r\n rnorm=r;\r\n\r\nzcnt=0;\r\nsum_solve=0;\r\nmin_solve=1000;\r\nmax_solve=0;\r\nasolve=199;\r\nmix=40;\r\n\r\ntic\r\n\r\nwhile zcnt\u003c500\r\n zcnt=zcnt+1;\r\n  r=rnorm;\r\n % Initial mix\r\n mov=randi(18,[mix,1]);\r\n for i=1:length(mov)  % Ignoring Move Undos since mix=40\r\n  %r=rubik_rot(mov(i),r);\r\n   r=r(vf(mov(i),:));\r\n end\r\n\r\n r_reset=r; % Used in assert\r\n\r\n solve_vec=rubik_solve_mini(r);\r\n\r\n for i=1:length(solve_vec) \r\n  %r=rubik_rot(solve_vec(i),r);\r\n  r=r(vf(solve_vec(i),:));\r\n end\r\n\r\n  if all(r(1:4)==r(4)) \u0026\u0026 all(r(5:8)==r(8))  \u0026\u0026 all(r(9:12)==r(9)) \u0026\u0026 ...\r\n     all(r(13:16)==r(13))  \u0026\u0026 all(r(17:20)==r(17)) \u0026\u0026 all(r(21:24)==r(21))\r\n   solve_vec(solve_vec\u003e18)=[]; %   \r\n   lsolve=length(solve_vec);\r\n   sum_solve=sum_solve+lsolve;\r\n   min_solve=min(min_solve,lsolve);\r\n   max_solve=max(max_solve,lsolve);\r\n   asolve=floor(sum_solve/zcnt);\r\n %  fprintf('Cube Solved Moves=%i  Avg Moves=%i min=%i  max=%i\\n',lsolve,asolve,min_solve,max_solve)\r\n  else % Deug info\r\n   Pass=0;\r\n   r_fail=r_reset;\r\n  % fprintf('\\n\\nCube NOT Solved???\\n\\n') \r\n  % fprintf('%i ',r); % Current ending data\r\n  % fprintf('\\n')\r\n  % fprintf('%i ',r_reset); % Starting Cube\r\n  end\r\n\r\nend % while of cubes\r\ntoc\r\n\r\nassert(isequal(Pass,1),sprintf('%i ',r_fail)); % Output Non-Solved Cube Start\r\nif Pass\r\n feval(@assignin,'caller','score',min(100,floor(asolve)));\r\nend\r\n\r\nfprintf('Moves: Avg %i   Min %i   Max %i\\n',asolve,min_solve,max_solve)","published":true,"deleted":false,"likes_count":1,"comments_count":0,"created_by":3097,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":2,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2012-09-04T03:44:49.000Z","updated_at":"2025-04-22T03:20:12.000Z","published_at":"2012-09-04T05:01:52.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/image\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/media/image1.png\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/image\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/media/image2.png\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/image\",\"targetMode\":\"\",\"relationshipId\":\"rId3\",\"target\":\"/media/image1.gif\"}],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe Challenge is to Solve a thoroughly scrambled Mini-Rubik's Cube(2x2x2).\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe Performance metric is average number of moves for solving 500 cubes.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eA standard Mini-Rubik's Cube is shown in 3-D and also unfolded to identify the specific Tile-face/Vector numbering.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe faces are White-Up / Red-Left / Blue-Front / Orange-Right / Yellow-Down / Green-Back (ULFRDB)\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eMoves are denoted as F for clockwise rotation of the Front face. F'(or FP) is CCW and F2 is F twice. The provided function r_new=rubick_rot_mini(mov,r) implements moves 1-18: UFDLBRU'F'D'L'B'R'U2F2D2L2B2R2.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:customXml w:element=\\\"image\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"height\\\" w:val=\\\"-1\\\"/\u003e\u003cw:attr w:name=\\\"width\\\" w:val=\\\"-1\\\"/\u003e\u003cw:attr w:name=\\\"relationshipId\\\" w:val=\\\"rId1\\\"/\u003e\u003c/w:customXmlPr\u003e\u003c/w:customXml\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:customXml w:element=\\\"image\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"height\\\" w:val=\\\"-1\\\"/\u003e\u003cw:attr w:name=\\\"width\\\" w:val=\\\"-1\\\"/\u003e\u003cw:attr w:name=\\\"relationshipId\\\" w:val=\\\"rId2\\\"/\u003e\u003c/w:customXmlPr\u003e\u003c/w:customXml\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:customXml w:element=\\\"image\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"height\\\" w:val=\\\"-1\\\"/\u003e\u003cw:attr w:name=\\\"width\\\" w:val=\\\"-1\\\"/\u003e\u003cw:attr w:name=\\\"relationshipId\\\" w:val=\\\"rId3\\\"/\u003e\u003c/w:customXmlPr\u003e\u003c/w:customXml\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[Input: (rubik)\\n\\nrubik: row vector of size 24\\n(The cube started [L=0,U=1,F=2,D=3,B=4,R=5] and then receives forty face moves.\\n\\nOutput: move_vec (Numeric of moves to solve)\\n move_vec:values 1:27 for UFDLBR U'F'D'L'B'R' U2F2D2L2B2R2 XYZX'Y'Z'X2Y2Z2]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eExample:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eIf the cube was randomized by [1 9] UD', one solution is [3 7] which are the complements in reverse order.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eScoring is average face moves for 500 cubes\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eCube Moves X, Y, and Z do not constitute a move but are needed in the vector\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eA string to numeric value function is provided in the template\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eVerifications will be by executing your move vector against the provided Rubik and counting number of face moves.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe function rubik_rot_mini(mov,r) is provided in the template.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe Function Template Contains a 3D Cube Viewer and the first step in solving is at the bottom in a comment block.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003cw:hyperlink w:docLocation=\\\"http://kociemba.org/cube.htm\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eCube Theory: 20-moves Any Cube\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003cw:hyperlink w:docLocation=\\\"http://peter.stillhq.com/jasmine/rubikscubesolution.html\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eGeneral Cube Info and Middle Layer\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003cw:hyperlink w:docLocation=\\\"http://www.speedcubing.com/final_layer_print.html\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eSpeedCube Bottom Sequences\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e(Note: Mini-Cube can use the full cube moves and ignore edge effects)\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eComing Soon: The Mini-Cube (2x2x2): Full Random - Eleven or Less Moves\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"},{\"partUri\":\"/media/image1.png\",\"contentType\":\"image/png\",\"content\":\"data:image/png;base64,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\"},{\"partUri\":\"/media/image2.png\",\"contentType\":\"image/png\",\"content\":\"data:image/png;base64,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\"},{\"partUri\":\"/media/image1.gif\",\"contentType\":\"image/gif\",\"content\":\"data:image/gif;base64,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\"}]}"},{"id":937,"title":"Rubik's Mini Cube: Solve Randomized Cube in 11 Moves or Less; Score is by Time (msec)","description":"The Challenge is to Near or Optimally Solve a thoroughly scrambled Mini-Rubik's Cube(2x2x2).\r\n\r\nAny Mini-Cube can be solved in 11 or fewer Face Moves. There are only 3,674,160 unique cube positions, with only 2344 requiring the fulll 11 moves. Cube moves do not count.\r\n\r\nThe Performance metric is cumulative Time to Solve 500 cubes (msec).\r\n\r\nA standard Mini-Rubik's Cube is shown in 3-D and also unfolded to identify the specific Tile-face/Vector numbering.\r\n\r\nThe faces are White-Up / Red-Left / Blue-Front / Orange-Right / Yellow-Down / Green-Back (ULFRDB)\r\n\r\nMoves are denoted as F for clockwise rotation of the Front face. F'(or FP) is CCW and F2 is F twice.  The provided function r_new=rubick_rot_mini(mov,r) implements moves 1-18: UFDLBRU'F'D'L'B'R'U2F2D2L2B2R2.\r\n\r\n\r\n\r\n\r\n\u003c\u003chttps://sites.google.com/site/razapor/matlab_cody/minicube2.png\u003e\u003e\r\n\r\n\u003c\u003chttps://sites.google.com/site/razapor/matlab_cody/miniCube_Map24_200.png\u003e\u003e\r\n\r\n\u003c\u003chttp://mathworks.com/matlabcentral/images/surf.gif\u003e\u003e\r\n\r\n\r\n  \r\n  \r\n  Input: (rubik)\r\n  \r\n  rubik: row vector of size 24\r\n  (The cube started [L=0,U=1,F=2,D=3,B=4,R=5] and then receives forty face moves.\r\n\r\n  Output: move_vec (Numeric of moves to solve)\r\n   move_vec:values 1:27 for UFDLBR U'F'D'L'B'R' U2F2D2L2B2R2 XYZX'Y'Z'X2Y2Z2\r\n\r\n* Example:\r\n* If the cube was randomized by [1 9] UD', one solution is [3 7]  which are the complements in reverse order. \r\n* Scoring is Time in msec to solve 500 cubes\r\n* Cube Moves X, Y, and Z do not constitute a move but are needed in the vector \r\n* A string to numeric value function is provided in the template\r\n* Verifications will be by executing your move vector against the provided Rubik and counting number of face moves.\r\n\r\nThe function rubik_rot_mini(mov,r) is provided in the template. Other functions are provided to re-orient the cube in Cody Challenge 931, Rubik's Mini-Cube.\r\n\r\n\r\nThe Challenge \u003chttp://www.mathworks.com/matlabcentral/cody/problems/931-rubik-s-mini-cube-solve-randomized-mini-cube-score-moves.html Challenge 931 Rubik's Mini-Cube\u003e contains a 3D Mini-Cube Viewer for program development.\r\n\r\n\r\n* \r\n* \u003chttp://kociemba.org/cube.htm Cube Theory: 20-moves Any Cube\u003e \r\n* \u003chttp://peter.stillhq.com/jasmine/rubikscubesolution.html General Cube Info and Middle Layer\u003e\r\n* \u003chttp://www.speedcubing.com/final_layer_print.html SpeedCube Bottom Sequences\u003e\r\n* The site \u003chttp://www.speedcubing.com/CubeSolver/MiniCubeSolver.html MiniCube Solver\u003e claims an outstanding 10 minutes to solve a randomized Mini-Cube. Matlab can achieve any Mini-Cube solution in \u003c 497 usec, independent of moves on an i5/16GB machine.\r\n\r\n\r\n(Note: Mini-Cube can use the full cube moves and ignore edge effects)\r\n\r\nComing Soon: Matlab Tetris\r\n","description_html":"\u003cdiv style = \"text-align: start; line-height: 20.4333px; min-height: 0px; white-space: normal; color: rgb(0, 0, 0); font-family: Menlo, Monaco, Consolas, monospace; font-style: normal; font-size: 14px; font-weight: 400; text-decoration: rgb(0, 0, 0); white-space: normal; \"\u003e\u003cdiv style=\"block-size: 1316.98px; display: block; min-width: 0px; padding-block-start: 0px; padding-top: 0px; perspective-origin: 407px 658.5px; transform-origin: 407px 658.5px; vertical-align: baseline; \"\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 294.65px 7.91667px; transform-origin: 294.65px 7.91667px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThe Challenge is to Near or Optimally Solve a thoroughly scrambled Mini-Rubik's Cube(2x2x2).\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 42px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 21px; text-align: left; transform-origin: 384px 21px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 377.2px 7.91667px; transform-origin: 377.2px 7.91667px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eAny Mini-Cube can be solved in 11 or fewer Face Moves. There are only 3,674,160 unique cube positions, with only 2344 requiring the fulll 11 moves. Cube moves do not count.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 221.45px 7.91667px; transform-origin: 221.45px 7.91667px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThe Performance metric is cumulative Time to Solve 500 cubes (msec).\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 355.467px 7.91667px; transform-origin: 355.467px 7.91667px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eA standard Mini-Rubik's Cube is shown in 3-D and also unfolded to identify the specific Tile-face/Vector numbering.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 316.733px 7.91667px; transform-origin: 316.733px 7.91667px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThe faces are White-Up / Red-Left / Blue-Front / Orange-Right / Yellow-Down / Green-Back (ULFRDB)\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 42px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 21px; text-align: left; transform-origin: 384px 21px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 380.533px 7.91667px; transform-origin: 380.533px 7.91667px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eMoves are denoted as F for clockwise rotation of the Front face. F'(or FP) is CCW and F2 is F twice. The provided function r_new=rubick_rot_mini(mov,r) implements moves 1-18: UFDLBRU'F'D'L'B'R'U2F2D2L2B2R2.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 138.917px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 69.4667px; text-align: center; transform-origin: 384px 69.4667px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cimg class=\"imageNode\" style=\"vertical-align: baseline\" src=\"data:image/png;base64,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\" data-image-state=\"image-loaded\"\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 242.917px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 121.467px; text-align: center; transform-origin: 384px 121.467px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cimg class=\"imageNode\" style=\"vertical-align: baseline\" src=\"data:image/png;base64,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\" data-image-state=\"image-loaded\"\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 113.917px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 56.9667px; text-align: center; transform-origin: 384px 56.9667px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cimg class=\"imageNode\" style=\"vertical-align: baseline\" src=\"data:image/gif;base64,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\" data-image-state=\"image-loaded\"\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgb(247, 247, 247); block-size: 143.033px; border-bottom-left-radius: 4px; border-bottom-right-radius: 4px; border-end-end-radius: 4px; border-end-start-radius: 4px; border-start-end-radius: 4px; border-start-start-radius: 4px; border-top-left-radius: 4px; border-top-right-radius: 4px; margin-block-end: 10px; margin-block-start: 10px; margin-bottom: 10px; margin-inline-end: 3px; margin-inline-start: 3px; margin-left: 3px; margin-right: 3px; margin-top: 10px; perspective-origin: 404px 71.5167px; transform-origin: 404px 71.5167px; margin-left: 3px; margin-top: 10px; margin-bottom: 10px; margin-right: 3px; \"\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 0.833333px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 0.833333px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 0.833333px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 0.833333px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 404px 10.2167px; transform-origin: 404px 10.2167px; white-space: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 53.9px 7.91667px; transform-origin: 53.9px 7.91667px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003eInput: (rubik)\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 0.833333px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 0.833333px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 0.833333px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 0.833333px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 404px 10.2167px; transform-origin: 404px 10.2167px; white-space: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 0px 7.91667px; transform-origin: 0px 7.91667px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 0.833333px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 0.833333px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 0.833333px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 0.833333px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 404px 10.2167px; transform-origin: 404px 10.2167px; white-space: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 107.8px 7.91667px; transform-origin: 107.8px 7.91667px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; perspective-origin: 69.3px 7.91667px; transform-origin: 69.3px 7.91667px; \"\u003erubik: row vector \u003c/span\u003e\u003cspan style=\"border-block-end-color: rgb(170, 4, 249); border-block-start-color: rgb(170, 4, 249); border-bottom-color: rgb(170, 4, 249); border-inline-end-color: rgb(170, 4, 249); border-inline-start-color: rgb(170, 4, 249); border-left-color: rgb(170, 4, 249); border-right-color: rgb(170, 4, 249); border-top-color: rgb(170, 4, 249); caret-color: rgb(170, 4, 249); color: rgb(170, 4, 249); column-rule-color: rgb(170, 4, 249); margin-inline-end: 0px; margin-right: 0px; outline-color: rgb(170, 4, 249); perspective-origin: 38.5px 7.91667px; text-decoration: none; text-decoration-color: rgb(170, 4, 249); text-emphasis-color: rgb(170, 4, 249); transform-origin: 38.5px 7.91667px; \"\u003eof size 24\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 0.833333px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 0.833333px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 0.833333px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 0.833333px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 404px 10.2167px; transform-origin: 404px 10.2167px; white-space: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 304.15px 7.91667px; transform-origin: 304.15px 7.91667px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e(The cube started [L=0,U=1,F=2,D=3,B=4,R=5] and then receives forty face moves.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 0.833333px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 0.833333px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 0.833333px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 0.833333px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 404px 10.2167px; transform-origin: 404px 10.2167px; white-space: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 0px 7.91667px; transform-origin: 0px 7.91667px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 0.833333px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 0.833333px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 0.833333px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 0.833333px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 404px 10.2167px; transform-origin: 404px 10.2167px; white-space: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 169.4px 7.91667px; transform-origin: 169.4px 7.91667px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003eOutput: move_vec (Numeric of moves to solve)\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 0.833333px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 0.833333px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 0.833333px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 0.833333px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 404px 10.2167px; transform-origin: 404px 10.2167px; white-space: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 284.9px 7.91667px; transform-origin: 284.9px 7.91667px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; perspective-origin: 84.7px 7.91667px; transform-origin: 84.7px 7.91667px; \"\u003e move_vec:values 1:27 \u003c/span\u003e\u003cspan style=\"border-block-end-color: rgb(14, 0, 255); border-block-start-color: rgb(14, 0, 255); border-bottom-color: rgb(14, 0, 255); border-inline-end-color: rgb(14, 0, 255); border-inline-start-color: rgb(14, 0, 255); border-left-color: rgb(14, 0, 255); border-right-color: rgb(14, 0, 255); border-top-color: rgb(14, 0, 255); caret-color: rgb(14, 0, 255); color: rgb(14, 0, 255); column-rule-color: rgb(14, 0, 255); margin-inline-end: 0px; margin-right: 0px; outline-color: rgb(14, 0, 255); perspective-origin: 15.4px 7.91667px; text-decoration: none; text-decoration-color: rgb(14, 0, 255); text-emphasis-color: rgb(14, 0, 255); transform-origin: 15.4px 7.91667px; \"\u003efor \u003c/span\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; perspective-origin: 127.05px 7.91667px; transform-origin: 127.05px 7.91667px; \"\u003eUFDLBR U'F'D'L'B'R' U2F2D2L2B2R2 \u003c/span\u003e\u003cspan style=\"border-block-end-color: rgb(196, 0, 0); border-block-start-color: rgb(196, 0, 0); border-bottom-color: rgb(196, 0, 0); border-inline-end-color: rgb(196, 0, 0); border-inline-start-color: rgb(196, 0, 0); border-left-color: rgb(196, 0, 0); border-right-color: rgb(196, 0, 0); border-top-color: rgb(196, 0, 0); caret-color: rgb(196, 0, 0); color: rgb(196, 0, 0); column-rule-color: rgb(196, 0, 0); margin-inline-end: 0px; margin-right: 0px; outline-color: rgb(196, 0, 0); perspective-origin: 57.75px 7.91667px; text-decoration: none; text-decoration-color: rgb(196, 0, 0); text-emphasis-color: rgb(196, 0, 0); transform-origin: 57.75px 7.91667px; \"\u003eXYZX'Y'Z'X2Y2Z2\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003c/div\u003e\u003cul style=\"block-size: 122.6px; counter-reset: list-item 0; font-family: Helvetica, Arial, sans-serif; list-style-type: square; margin-block-end: 20px; margin-block-start: 10px; margin-bottom: 20px; margin-top: 10px; perspective-origin: 391px 61.3px; transform-origin: 391px 61.3px; margin-top: 10px; margin-bottom: 20px; \"\u003e\u003cli style=\"block-size: 20.4333px; counter-reset: none; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 363px 10.2167px; text-align: left; transform-origin: 363px 10.2167px; white-space: pre-wrap; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 29.1833px 7.91667px; transform-origin: 29.1833px 7.91667px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eExample:\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"block-size: 20.4333px; counter-reset: none; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 363px 10.2167px; text-align: left; transform-origin: 363px 10.2167px; white-space: pre-wrap; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 327.667px 7.91667px; transform-origin: 327.667px 7.91667px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eIf the cube was randomized by [1 9] UD', one solution is [3 7] which are the complements in reverse order.\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"block-size: 20.4333px; counter-reset: none; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 363px 10.2167px; text-align: left; transform-origin: 363px 10.2167px; white-space: pre-wrap; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 134.333px 7.91667px; transform-origin: 134.333px 7.91667px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eScoring is Time in msec to solve 500 cubes\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"block-size: 20.4333px; counter-reset: none; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 363px 10.2167px; text-align: left; transform-origin: 363px 10.2167px; white-space: pre-wrap; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 242.583px 7.91667px; transform-origin: 242.583px 7.91667px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eCube Moves X, Y, and Z do not constitute a move but are needed in the vector\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"block-size: 20.4333px; counter-reset: none; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 363px 10.2167px; text-align: left; transform-origin: 363px 10.2167px; white-space: pre-wrap; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 187.1px 7.91667px; transform-origin: 187.1px 7.91667px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eA string to numeric value function is provided in the template\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"block-size: 20.4333px; counter-reset: none; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 363px 10.2167px; text-align: left; transform-origin: 363px 10.2167px; white-space: pre-wrap; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 355.933px 7.91667px; transform-origin: 355.933px 7.91667px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eVerifications will be by executing your move vector against the provided Rubik and counting number of face moves.\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003c/ul\u003e\u003cdiv style=\"block-size: 42px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 21px; text-align: left; transform-origin: 384px 21px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 374.067px 7.91667px; transform-origin: 374.067px 7.91667px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThe function rubik_rot_mini(mov,r) is provided in the template. Other functions are provided to re-orient the cube in Cody Challenge 931, Rubik's Mini-Cube.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 45.5333px 7.91667px; transform-origin: 45.5333px 7.91667px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThe Challenge\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 1.95px 7.91667px; transform-origin: 1.95px 7.91667px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e \u003c/span\u003e\u003c/span\u003e\u003ca target='_blank' href = \"http://www.mathworks.com/matlabcentral/cody/problems/931-rubik-s-mini-cube-solve-randomized-mini-cube-score-moves.html\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"\"\u003eChallenge 931 Rubik's Mini-Cube\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 183.883px 7.91667px; transform-origin: 183.883px 7.91667px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e contains a 3D Mini-Cube Viewer for program development.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cul style=\"block-size: 122.6px; counter-reset: list-item 0; font-family: Helvetica, Arial, sans-serif; list-style-type: square; margin-block-end: 20px; margin-block-start: 10px; margin-bottom: 20px; margin-top: 10px; perspective-origin: 391px 61.3px; transform-origin: 391px 61.3px; margin-top: 10px; margin-bottom: 20px; \"\u003e\u003cli style=\"block-size: 20.4333px; counter-reset: none; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 363px 10.2167px; text-align: left; transform-origin: 363px 10.2167px; white-space: pre-wrap; margin-left: 56px; \"\u003e\u003c/li\u003e\u003cli style=\"block-size: 20.4333px; counter-reset: none; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 363px 10.2167px; text-align: left; transform-origin: 363px 10.2167px; white-space: pre-wrap; margin-left: 56px; \"\u003e\u003ca target='_blank' href = \"http://kociemba.org/cube.htm\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"\"\u003eCube Theory: 20-moves Any Cube\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003c/li\u003e\u003cli style=\"block-size: 20.4333px; counter-reset: none; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 363px 10.2167px; text-align: left; transform-origin: 363px 10.2167px; white-space: pre-wrap; margin-left: 56px; \"\u003e\u003ca target='_blank' href = \"http://peter.stillhq.com/jasmine/rubikscubesolution.html\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"\"\u003eGeneral Cube Info and Middle Layer\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003c/li\u003e\u003cli style=\"block-size: 20.4333px; counter-reset: none; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 363px 10.2167px; text-align: left; transform-origin: 363px 10.2167px; white-space: pre-wrap; margin-left: 56px; \"\u003e\u003ca target='_blank' href = \"http://www.speedcubing.com/final_layer_print.html\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"\"\u003eSpeedCube Bottom Sequences\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003c/li\u003e\u003cli style=\"block-size: 40.8667px; counter-reset: none; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 363px 20.4333px; text-align: left; transform-origin: 363px 20.4333px; white-space: pre-wrap; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 24.9px 7.91667px; transform-origin: 24.9px 7.91667px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThe site\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 1.95px 7.91667px; transform-origin: 1.95px 7.91667px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e \u003c/span\u003e\u003c/span\u003e\u003ca target='_blank' href = \"http://www.speedcubing.com/CubeSolver/MiniCubeSolver.html\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"\"\u003eMiniCube Solver\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 276.2px 7.91667px; transform-origin: 276.2px 7.91667px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e claims an outstanding 10 minutes to solve a randomized Mini-Cube. Matlab can achieve any Mini-Cube solution in \u0026lt; 497 usec, independent of moves on an i5/16GB machine.\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003c/ul\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 218.883px 7.91667px; transform-origin: 218.883px 7.91667px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e(Note: Mini-Cube can use the full cube moves and ignore edge effects)\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 85.9667px 7.91667px; transform-origin: 85.9667px 7.91667px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eComing Soon: Matlab Tetris\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e","function_template":"function solve_vec = rubik_solve_mini(r)\r\n% Expect Numeric representation of moves (1:27):\r\n% 1:27 are ufdlbr upfpdplpbprp u2f2d2l2b2r2 xyzxpypzpx2y2z2\r\n solve_vec=[]; \r\n\r\n% One path is to use Challenge 931's, Rubik's Mini Cube, initial Cube re-orientation provided in the template, followed by a solving algorithm that needs only RDB type moves\r\n% Loading an external data file is one method. First solve is not timed.\r\nend\r\n\r\nfunction r=rubik_rot_mini(mov,r)\r\n%mov is 1:27;  1-6 UFDLBR 7-12 U'F;D'L'B'R' 13-18 U2F2D2L2B2R2 \r\n%             19-27 XYZ X'Y'Z' X2Y2Z2  \r\n% X cube-R, Y cube-U,  Z cube-F\r\n%\r\n% r is a 24 element row vector\r\n% r output is a single row vector \r\n%\r\n% vector mov\r\n% r output is array of length(mov) x 24\r\n%\r\n% Perform Rubik Cube face rotations and cube rotations\r\n% L 1:4 U 5:8 F 9:12 D 13:16 B 17:20 R 21:24 \r\n% \r\npersistent vf\r\nif isempty(vf) %\r\nvf=[9 2 11 4 6 8 5 7 21 10 23 12 13 14 15 16 17 3 19 1 20 22 18 24 ; \r\n    1 2 13 15 5 4 7 3 10 12 9 11 22 14 21 16 17 18 19 20 6 8 23 24 ;\r\n    1 19 3 17 5 6 7 8 9 2 11 4 14 16 13 15 24 18 22 20 21 10 23 12 ;\r\n    2 4 1 3 17 18 7 8 5 6 11 12 9 10 15 16 13 14 19 20 21 22 23 24 ;\r\n    7 5 3 4 23 6 24 8 9 10 11 12 13 1 15 2 18 20 17 19 21 22 16 14 ;\r\n    1 2 3 4 5 6 11 12 9 10 15 16 13 14 19 20 17 18 7 8 22 24 21 23 ;\r\n    20 2 18 4 7 5 8 6 1 10 3 12 13 14 15 16 17 23 19 21 9 22 11 24 ;\r\n    1 2 8 6 5 21 7 22 11 9 12 10 3 14 4 16 17 18 19 20 15 13 23 24 ;\r\n    1 10 3 12 5 6 7 8 9 22 11 24 15 13 16 14 4 18 2 20 21 19 23 17 ;\r\n    3 1 4 2 9 10 7 8 13 14 11 12 17 18 15 16 5 6 19 20 21 22 23 24 ;\r\n    14 16 3 4 2 6 1 8 9 10 11 12 13 24 15 23 19 17 20 18 21 22 5 7 ;\r\n    1 2 3 4 5 6 19 20 9 10 7 8 13 14 11 12 17 18 15 16 23 21 24 22 ;\r\n    21 2 23 4 8 7 6 5 20 10 18 12 13 14 15 16 17 11 19 9 1 22 3 24 ;\r\n    1 2 22 21 5 15 7 13 12 11 10 9 8 14 6 16 17 18 19 20 4 3 23 24 ;\r\n    1 22 3 24 5 6 7 8 9 19 11 17 16 15 14 13 12 18 10 20 21 2 23 4 ;\r\n    4 3 2 1 13 14 7 8 17 18 11 12 5 6 15 16 9 10 19 20 21 22 23 24 ;\r\n    24 23 3 4 16 6 14 8 9 10 11 12 13 7 15 5 20 19 18 17 21 22 2 1 ;\r\n    1 2 3 4 5 6 15 16 9 10 19 20 13 14 7 8 17 18 11 12 24 23 22 21 ;\r\n    3 1 4 2 9 10 11 12 13 14 15 16 17 18 19 20 5 6 7 8 22 24 21 23 ;\r\n    9 10 11 12 6 8 5 7 21 22 23 24 15 13 16 14 4 3 2 1 20 19 18 17 ;\r\n    14 16 13 15 2 4 1 3 10 12 9 11 22 24 21 23 19 17 20 18 6 8 5 7 ;\r\n    2 4 1 3 17 18 19 20 5 6 7 8 9 10 11 12 13 14 15 16 23 21 24 22 ;\r\n    20 19 18 17 7 5 8 6 1 2 3 4 14 16 13 15 24 23 22 21 9 10 11 12 ;\r\n    7 5 8 6 23 21 24 22 11 9 12 10 3 1 4 2 18 20 17 19 15 13 16 14 ;\r\n    4 3 2 1 13 14 15 16 17 18 19 20 5 6 7 8 9 10 11 12 24 23 22 21 ;\r\n    21 22 23 24 8 7 6 5 20 19 18 17 16 15 14 13 12 11 10 9 1 2 3 4 ; \r\n    24 23 22 21 16 15 14 13 12 11 10 9 8 7 6 5 20 19 18 17 4 3 2 1 ];\r\nend\r\n\r\nr=r(vf(mov,:));\r\nend\r\n\r\n\r\nfunction move_vec=decode27_movestr_rev001(movestr)\r\n% Active character Inputs: UFDLBRXYZ, GQ are pre-processed\r\n% 1-6 UFDLBR 7-12 U'F;D'L'B'R' 13-18 U2F2D2L2B2R2 19-27 XYZX'Y'Z'X2Y2Z2\r\nmovestr=upper(movestr);\r\nmovestr=strrep(movestr,'''','P'); % simplify further searches\r\n\r\nmovestr=strrep(movestr,'UP',' 7 ');\r\nmovestr=strrep(movestr,'FP',' 8 ');\r\nmovestr=strrep(movestr,'DP',' 9 ');\r\nmovestr=strrep(movestr,'LP',' 10 ');\r\nmovestr=strrep(movestr,'BP',' 11 ');\r\nmovestr=strrep(movestr,'RP',' 12 ');\r\nmovestr=strrep(movestr,'U2',' 13 ');\r\nmovestr=strrep(movestr,'F2',' 14 ');\r\nmovestr=strrep(movestr,'D2',' 15 ');\r\nmovestr=strrep(movestr,'L2',' 16 ');\r\nmovestr=strrep(movestr,'B2',' 17 ');\r\nmovestr=strrep(movestr,'R2',' 18 ');\r\nmovestr=strrep(movestr,'U',' 1 ');\r\nmovestr=strrep(movestr,'F',' 2 ');\r\nmovestr=strrep(movestr,'D',' 3 ');\r\nmovestr=strrep(movestr,'L',' 4 ');\r\nmovestr=strrep(movestr,'B',' 5 ');\r\nmovestr=strrep(movestr,'R',' 6 ');\r\nmovestr=strrep(movestr,'XP',' 22 ');\r\nmovestr=strrep(movestr,'YP',' 23 ');\r\nmovestr=strrep(movestr,'ZP',' 24 ');\r\nmovestr=strrep(movestr,'X2',' 25 ');\r\nmovestr=strrep(movestr,'Y2',' 26 ');\r\nmovestr=strrep(movestr,'Z2',' 27 ');\r\nmovestr=strrep(movestr,'X',' 19 ');\r\nmovestr=strrep(movestr,'Y',' 20 ');\r\nmovestr=strrep(movestr,'Z',' 21 ');\r\n\r\nmove_vec=str2num(movestr);\r\n\r\nend % move_vec","test_suite":"%%\r\nfeval(@assignin,'caller','score',0);\r\n%%\r\nvf=[9 2 11 4 6 8 5 7 21 10 23 12 13 14 15 16 17 3 19 1 20 22 18 24 ; \r\n    1 2 13 15 5 4 7 3 10 12 9 11 22 14 21 16 17 18 19 20 6 8 23 24 ;\r\n    1 19 3 17 5 6 7 8 9 2 11 4 14 16 13 15 24 18 22 20 21 10 23 12 ;\r\n    2 4 1 3 17 18 7 8 5 6 11 12 9 10 15 16 13 14 19 20 21 22 23 24 ;\r\n    7 5 3 4 23 6 24 8 9 10 11 12 13 1 15 2 18 20 17 19 21 22 16 14 ;\r\n    1 2 3 4 5 6 11 12 9 10 15 16 13 14 19 20 17 18 7 8 22 24 21 23 ;\r\n    20 2 18 4 7 5 8 6 1 10 3 12 13 14 15 16 17 23 19 21 9 22 11 24 ;\r\n    1 2 8 6 5 21 7 22 11 9 12 10 3 14 4 16 17 18 19 20 15 13 23 24 ;\r\n    1 10 3 12 5 6 7 8 9 22 11 24 15 13 16 14 4 18 2 20 21 19 23 17 ;\r\n    3 1 4 2 9 10 7 8 13 14 11 12 17 18 15 16 5 6 19 20 21 22 23 24 ;\r\n    14 16 3 4 2 6 1 8 9 10 11 12 13 24 15 23 19 17 20 18 21 22 5 7 ;\r\n    1 2 3 4 5 6 19 20 9 10 7 8 13 14 11 12 17 18 15 16 23 21 24 22 ;\r\n    21 2 23 4 8 7 6 5 20 10 18 12 13 14 15 16 17 11 19 9 1 22 3 24 ;\r\n    1 2 22 21 5 15 7 13 12 11 10 9 8 14 6 16 17 18 19 20 4 3 23 24 ;\r\n    1 22 3 24 5 6 7 8 9 19 11 17 16 15 14 13 12 18 10 20 21 2 23 4 ;\r\n    4 3 2 1 13 14 7 8 17 18 11 12 5 6 15 16 9 10 19 20 21 22 23 24 ;\r\n    24 23 3 4 16 6 14 8 9 10 11 12 13 7 15 5 20 19 18 17 21 22 2 1 ;\r\n    1 2 3 4 5 6 15 16 9 10 19 20 13 14 7 8 17 18 11 12 24 23 22 21 ;\r\n    3 1 4 2 9 10 11 12 13 14 15 16 17 18 19 20 5 6 7 8 22 24 21 23 ;\r\n    9 10 11 12 6 8 5 7 21 22 23 24 15 13 16 14 4 3 2 1 20 19 18 17 ;\r\n    14 16 13 15 2 4 1 3 10 12 9 11 22 24 21 23 19 17 20 18 6 8 5 7 ;\r\n    2 4 1 3 17 18 19 20 5 6 7 8 9 10 11 12 13 14 15 16 23 21 24 22 ;\r\n    20 19 18 17 7 5 8 6 1 2 3 4 14 16 13 15 24 23 22 21 9 10 11 12 ;\r\n    7 5 8 6 23 21 24 22 11 9 12 10 3 1 4 2 18 20 17 19 15 13 16 14 ;\r\n    4 3 2 1 13 14 15 16 17 18 19 20 5 6 7 8 9 10 11 12 24 23 22 21 ;\r\n    21 22 23 24 8 7 6 5 20 19 18 17 16 15 14 13 12 11 10 9 1 2 3 4 ; \r\n    24 23 22 21 16 15 14 13 12 11 10 9 8 7 6 5 20 19 18 17 4 3 2 1 ];\r\n\r\n%r=r(vf(mov,:));  % Standard move, r=rubik_rot_min(mov,r);\r\n\r\nPass=1;\r\nr_fail=0;\r\n% Execute 500 cubes and verify completeness and count moves\r\n % initialize cube\r\n r(1:4)=0;     %Left   0 R\r\n r(5:8)=1;     %Up     1 W\r\n r(9:12)=2;    %Front  2 B\r\n r(13:16)=3;   %Down   3 Y\r\n r(17:20)=4;   %Back   4 G\r\n r(21:24)=5;   %Right  5 O\r\n rnorm=r;\r\n\r\nzcnt=500;\r\nsum_solve=0;\r\nmin_solve=1000;\r\nmax_solve=0;\r\nasolve=199;\r\nmix=40;\r\n\r\ntic\r\n\r\nfor cube_check=1:zcnt %zcnt\u003c100 %500\r\n %zcnt=zcnt+1;\r\n  r=rnorm;\r\n % Initial mix\r\n mov=randi(18,[mix,1]);\r\n for i=1:length(mov)  % Ignoring Move Undos since mix=40\r\n   r=r(vf(mov(i),:));\r\n end\r\n\r\n r_reset=r; % Used in assert\r\n\r\n solve_vec=rubik_solve_mini(r);\r\n\r\n for i=1:length(solve_vec) \r\n  r=r(vf(solve_vec(i),:));\r\n end\r\n\r\n  if all(r(1:4)==r(4)) \u0026\u0026 all(r(5:8)==r(8))  \u0026\u0026 all(r(9:12)==r(9)) \u0026\u0026 ...\r\n     all(r(13:16)==r(13))  \u0026\u0026 all(r(17:20)==r(17)) \u0026\u0026 all(r(21:24)==r(21))\r\n   solve_vec(solve_vec\u003e18)=[]; %   \r\n   lsolve=length(solve_vec);\r\n   if lsolve\u003e11, Pass=0;end % Length Rqmt\r\n   sum_solve=sum_solve+lsolve;\r\n   min_solve=min(min_solve,lsolve);\r\n   max_solve=max(max_solve,lsolve);\r\n   asolve=floor(sum_solve/zcnt);\r\n %  fprintf('Cube Solved Moves=%i  Avg Moves=%i min=%i  max=%i\\n',lsolve,asolve,min_solve,max_solve)\r\n  else % Deug info\r\n   Pass=0;\r\n   r_fail=r_reset;\r\n  % fprintf('\\n\\nCube NOT Solved???\\n\\n') \r\n  % fprintf('%i ',r); % Current ending data\r\n  % fprintf('\\n')\r\n  % fprintf('%i ',r_reset); % Starting Cube\r\n  end\r\n\r\nend % while of cubes\r\ntoc\r\n\r\nassert(isequal(Pass,1),sprintf('Max Len=%i \\n',max_solve)); % Length Exception\r\nassert(isequal(Pass,1),sprintf('%i ',r_fail)); % Output Non-Solved Cube Start\r\n\r\n%if Pass\r\n% feval(@assignin,'caller','score',min(100,floor(asolve)));\r\n%end\r\n\r\nfprintf('Moves: Avg %i   Min %i   Max %i\\n',asolve,min_solve,max_solve)\r\n\r\n%%\r\nvf=[9 2 11 4 6 8 5 7 21 10 23 12 13 14 15 16 17 3 19 1 20 22 18 24 ; \r\n    1 2 13 15 5 4 7 3 10 12 9 11 22 14 21 16 17 18 19 20 6 8 23 24 ;\r\n    1 19 3 17 5 6 7 8 9 2 11 4 14 16 13 15 24 18 22 20 21 10 23 12 ;\r\n    2 4 1 3 17 18 7 8 5 6 11 12 9 10 15 16 13 14 19 20 21 22 23 24 ;\r\n    7 5 3 4 23 6 24 8 9 10 11 12 13 1 15 2 18 20 17 19 21 22 16 14 ;\r\n    1 2 3 4 5 6 11 12 9 10 15 16 13 14 19 20 17 18 7 8 22 24 21 23 ;\r\n    20 2 18 4 7 5 8 6 1 10 3 12 13 14 15 16 17 23 19 21 9 22 11 24 ;\r\n    1 2 8 6 5 21 7 22 11 9 12 10 3 14 4 16 17 18 19 20 15 13 23 24 ;\r\n    1 10 3 12 5 6 7 8 9 22 11 24 15 13 16 14 4 18 2 20 21 19 23 17 ;\r\n    3 1 4 2 9 10 7 8 13 14 11 12 17 18 15 16 5 6 19 20 21 22 23 24 ;\r\n    14 16 3 4 2 6 1 8 9 10 11 12 13 24 15 23 19 17 20 18 21 22 5 7 ;\r\n    1 2 3 4 5 6 19 20 9 10 7 8 13 14 11 12 17 18 15 16 23 21 24 22 ;\r\n    21 2 23 4 8 7 6 5 20 10 18 12 13 14 15 16 17 11 19 9 1 22 3 24 ;\r\n    1 2 22 21 5 15 7 13 12 11 10 9 8 14 6 16 17 18 19 20 4 3 23 24 ;\r\n    1 22 3 24 5 6 7 8 9 19 11 17 16 15 14 13 12 18 10 20 21 2 23 4 ;\r\n    4 3 2 1 13 14 7 8 17 18 11 12 5 6 15 16 9 10 19 20 21 22 23 24 ;\r\n    24 23 3 4 16 6 14 8 9 10 11 12 13 7 15 5 20 19 18 17 21 22 2 1 ;\r\n    1 2 3 4 5 6 15 16 9 10 19 20 13 14 7 8 17 18 11 12 24 23 22 21 ;\r\n    3 1 4 2 9 10 11 12 13 14 15 16 17 18 19 20 5 6 7 8 22 24 21 23 ;\r\n    9 10 11 12 6 8 5 7 21 22 23 24 15 13 16 14 4 3 2 1 20 19 18 17 ;\r\n    14 16 13 15 2 4 1 3 10 12 9 11 22 24 21 23 19 17 20 18 6 8 5 7 ;\r\n    2 4 1 3 17 18 19 20 5 6 7 8 9 10 11 12 13 14 15 16 23 21 24 22 ;\r\n    20 19 18 17 7 5 8 6 1 2 3 4 14 16 13 15 24 23 22 21 9 10 11 12 ;\r\n    7 5 8 6 23 21 24 22 11 9 12 10 3 1 4 2 18 20 17 19 15 13 16 14 ;\r\n    4 3 2 1 13 14 15 16 17 18 19 20 5 6 7 8 9 10 11 12 24 23 22 21 ;\r\n    21 22 23 24 8 7 6 5 20 19 18 17 16 15 14 13 12 11 10 9 1 2 3 4 ; \r\n    24 23 22 21 16 15 14 13 12 11 10 9 8 7 6 5 20 19 18 17 4 3 2 1 ];\r\n\r\n%r=r(vf(mov,:));  % Standard move, r=rubik_rot_min(mov,r);\r\n\r\nPass=1;\r\nr_fail=0;\r\n% Execute 500 cubes and verify completeness and count moves\r\n % initialize cube\r\n r(1:4)=0;     %Left   0 R\r\n r(5:8)=1;     %Up     1 W\r\n r(9:12)=2;    %Front  2 B\r\n r(13:16)=3;   %Down   3 Y\r\n r(17:20)=4;   %Back   4 G\r\n r(21:24)=5;   %Right  5 O\r\n rnorm=r;\r\n\r\n for jrand=1:40  % Ignoring Move Undos since mix=40\r\n   r=r(vf(randi(18),:));\r\n end\r\n\r\n q=500;\r\n ra=zeros(q,24);\r\n for i=1:q\r\n  for jrand=1:10  % Ignoring Move Undos since base mix=40\r\n    r=r(vf(randi(18),:));\r\n  end\r\n % add 10 new moves to prior vector\r\n  ra(i,:)=r;\r\n end\r\n\r\n% The Time Trail section does not check accuracy, that is done above\r\nt0=clock;\r\nfor i=1:q\r\n solve_vec=rubik_solve_mini(ra(q,:));\r\nend\r\ndt=etime(clock,t0)*1000;\r\n\r\n%assert(isequal(find_fast(a,val(1)),find(a==val(1),1,'first')))\r\nfprintf('Your Time = %i msec\\n',floor(dt))\r\nfeval(@assignin,'caller','score',min(2000,floor(dt)));\r\n%   Performance Score","published":true,"deleted":false,"likes_count":5,"comments_count":0,"created_by":3097,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":1,"test_suite_updated_at":"2012-09-09T17:48:25.000Z","rescore_all_solutions":false,"group_id":1,"created_at":"2012-09-09T06:26:08.000Z","updated_at":"2025-11-17T16:25:58.000Z","published_at":"2012-09-09T16:33:58.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe Challenge is to Near or Optimally Solve a thoroughly scrambled Mini-Rubik's Cube(2x2x2).\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eAny Mini-Cube can be solved in 11 or fewer Face Moves. There are only 3,674,160 unique cube positions, with only 2344 requiring the fulll 11 moves. Cube moves do not count.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe Performance metric is cumulative Time to Solve 500 cubes (msec).\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eA standard Mini-Rubik's Cube is shown in 3-D and also unfolded to identify the specific Tile-face/Vector numbering.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe faces are White-Up / Red-Left / Blue-Front / Orange-Right / Yellow-Down / Green-Back (ULFRDB)\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eMoves are denoted as F for clockwise rotation of the Front face. F'(or FP) is CCW and F2 is F twice. The provided function r_new=rubick_rot_mini(mov,r) implements moves 1-18: UFDLBRU'F'D'L'B'R'U2F2D2L2B2R2.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"center\\\"/\u003e\u003c/w:pPr\u003e\u003cw:customXml w:element=\\\"image\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"height\\\" w:val=\\\"-1\\\"/\u003e\u003cw:attr w:name=\\\"width\\\" w:val=\\\"-1\\\"/\u003e\u003cw:attr w:name=\\\"verticalAlign\\\" w:val=\\\"baseline\\\"/\u003e\u003cw:attr w:name=\\\"altText\\\" w:val=\\\"\\\"/\u003e\u003cw:attr w:name=\\\"relationshipId\\\" w:val=\\\"rId1\\\"/\u003e\u003c/w:customXmlPr\u003e\u003c/w:customXml\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"center\\\"/\u003e\u003c/w:pPr\u003e\u003cw:customXml w:element=\\\"image\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"height\\\" w:val=\\\"-1\\\"/\u003e\u003cw:attr w:name=\\\"width\\\" w:val=\\\"-1\\\"/\u003e\u003cw:attr w:name=\\\"verticalAlign\\\" w:val=\\\"baseline\\\"/\u003e\u003cw:attr w:name=\\\"altText\\\" w:val=\\\"\\\"/\u003e\u003cw:attr w:name=\\\"relationshipId\\\" w:val=\\\"rId2\\\"/\u003e\u003c/w:customXmlPr\u003e\u003c/w:customXml\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"center\\\"/\u003e\u003c/w:pPr\u003e\u003cw:customXml w:element=\\\"image\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"height\\\" w:val=\\\"-1\\\"/\u003e\u003cw:attr w:name=\\\"width\\\" w:val=\\\"-1\\\"/\u003e\u003cw:attr w:name=\\\"verticalAlign\\\" w:val=\\\"baseline\\\"/\u003e\u003cw:attr w:name=\\\"altText\\\" w:val=\\\"\\\"/\u003e\u003cw:attr w:name=\\\"relationshipId\\\" w:val=\\\"rId3\\\"/\u003e\u003c/w:customXmlPr\u003e\u003c/w:customXml\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[Input: (rubik)\\n\\nrubik: row vector of size 24\\n(The cube started [L=0,U=1,F=2,D=3,B=4,R=5] and then receives forty face moves.\\n\\nOutput: move_vec (Numeric of moves to solve)\\n move_vec:values 1:27 for UFDLBR U'F'D'L'B'R' U2F2D2L2B2R2 XYZX'Y'Z'X2Y2Z2]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eExample:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eIf the cube was randomized by [1 9] UD', one solution is [3 7] which are the complements in reverse order.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eScoring is Time in msec to solve 500 cubes\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eCube Moves X, Y, and Z do not constitute a move but are needed in the vector\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eA string to numeric value function is provided in the template\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eVerifications will be by executing your move vector against the provided Rubik and counting number of face moves.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe function rubik_rot_mini(mov,r) is provided in the template. Other functions are provided to re-orient the cube in Cody Challenge 931, Rubik's Mini-Cube.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe Challenge\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"http://www.mathworks.com/matlabcentral/cody/problems/931-rubik-s-mini-cube-solve-randomized-mini-cube-score-moves.html\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eChallenge 931 Rubik's Mini-Cube\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e contains a 3D Mini-Cube Viewer for program development.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:hyperlink w:docLocation=\\\"http://kociemba.org/cube.htm\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eCube Theory: 20-moves Any Cube\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:hyperlink w:docLocation=\\\"http://peter.stillhq.com/jasmine/rubikscubesolution.html\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eGeneral Cube Info and Middle Layer\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:hyperlink w:docLocation=\\\"http://www.speedcubing.com/final_layer_print.html\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eSpeedCube Bottom Sequences\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe site\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"http://www.speedcubing.com/CubeSolver/MiniCubeSolver.html\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eMiniCube Solver\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e claims an outstanding 10 minutes to solve a randomized Mini-Cube. Matlab can achieve any Mini-Cube solution in \u0026lt; 497 usec, independent of moves on an i5/16GB machine.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e(Note: Mini-Cube can use the full cube moves and ignore edge effects)\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eComing Soon: Matlab Tetris\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\",\"relationship\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/image\",\"target\":\"/media/image1.png\",\"relationshipId\":\"rId1\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/image\",\"target\":\"/media/image2.png\",\"relationshipId\":\"rId2\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/image\",\"target\":\"/media/image1.gif\",\"relationshipId\":\"rId3\"}]},{\"partUri\":\"/media/image1.png\",\"contentType\":\"image/png\",\"content\":\"data:image/png;base64,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\",\"relationship\":null},{\"partUri\":\"/media/image2.png\",\"contentType\":\"image/png\",\"content\":\"data:image/png;base64,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\",\"relationship\":null},{\"partUri\":\"/media/image1.gif\",\"contentType\":\"image/gif\",\"content\":\"data:image/gif;base64,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\",\"relationship\":null}],\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"target\":\"/matlab/document.xml\",\"relationshipId\":\"rId1\"}]}"},{"id":1139,"title":"Rubik's Cube: 30 Moves or Less : Contest Scoring (Time/Size/Moves)","description":"This Challenge is to solve a thoroughly scrambled Rubik's cube with the best score (30 moves max). Score is Moves + Size/2000 + e^(avg time sec / 3).\r\n\r\nRubik's Cube can be solved in 20 moves or less from any position.  The \u003chttp://kociemba.org/cube.htm Kociemba Two Phase algorithm\u003e can solve the Cube in 30 moves or less.  The basic theory is that any cube can transition to an H-cube by 12 moves using all possible 18 move types.  An H-cube is defined as having no rotations or flips of corners or edges, respectively, and has all middle edges in the middle row. The cube can be solved from any H-cube state in 18 moves or less using only the moves U U' U2 D D' D2 F2 L2 R2 B2. \u003chttp://kociemba.org/math/CubeDefs.htm#faceturns Definitions of Moves / Rotates / Flips for Corners and Edges\u003e. The Two-Phase algorithm typically solves in 24 moves or less.\r\n\r\n\u003c\u003chttps://sites.google.com/site/razapor/matlab_cody/cube_small.gif\u003e\u003e\r\n\r\n\u003c\u003chttps://sites.google.com/site/razapor/matlab_cody/Cube_Map48_200.png\u003e\u003e\r\n\r\nRubik's Cube has 48 faces that are assigned to a vector as in the above figure.\r\nU refers to the White face, F-Blue, L-Red, R-Orange, D-Yellow, and B-Green. Moves (1-6 UFDLBR 7-12 U'F'D'L'B'R' 13-18 U2F2D2L2B2R2) are clockwise looking towards the center, primes are CCW (eq U'), and twos are a half turn of a face.\r\n\r\n  The color to numeric coding is [RWBYGO] [012345]. \r\n  A solved cube is [0000 0000 1111 1111 2222 2222 3333 3333 4444 4444 5555 5555]\r\n\r\n*Input:* Cube\r\n\r\nCube is a 48 long row vector of values 0 thru 5.\r\n  \r\n*Output:* Move_Vector\r\n\r\nMove_Vector is an empty to 30 element vector of values 1:18\r\n\r\n*Constraint:* Solution must be 30 moves or less\r\n\r\n*Scoring:* Moves + Size / 2000 + e^(avg time sec / 3 )\r\n\r\n\u003chttp://cube20.org/src/ Two Phase Source code\u003e is fairly complex and may require a 500MB database file. Its goal is to find solutions of 20 or less starting with Two Phase.\r\n\r\n\u003chttps://sites.google.com/site/razapor/matlab_cody/Cube30rev001.ppt?attredirects=0\u0026d=1 30 move Cube Solution in Matlab (rought draft)\u003e","description_html":"\u003cdiv style = \"text-align: start; line-height: 20.4333px; min-height: 0px; white-space: normal; color: rgb(0, 0, 0); font-family: Menlo, Monaco, Consolas, monospace; font-style: normal; font-size: 14px; font-weight: 400; text-decoration: rgb(0, 0, 0); white-space: normal; \"\u003e\u003cdiv style=\"block-size: 957.7px; display: block; min-width: 0px; padding-block-start: 0px; padding-top: 0px; perspective-origin: 407px 478.85px; transform-origin: 407px 478.85px; vertical-align: baseline; \"\u003e\u003cdiv style=\"block-size: 42px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 21px; text-align: left; transform-origin: 384px 21px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 368.333px 7.91667px; transform-origin: 368.333px 7.91667px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThis Challenge is to solve a thoroughly scrambled Rubik's cube with the best score (30 moves max). Score is Moves + Size/2000 + e^(avg time sec / 3).\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 126px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 63px; text-align: left; transform-origin: 384px 63px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 219.95px 7.91667px; transform-origin: 219.95px 7.91667px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eRubik's Cube can be solved in 20 moves or less from any position. The\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 1.95px 7.91667px; transform-origin: 1.95px 7.91667px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e \u003c/span\u003e\u003c/span\u003e\u003ca target='_blank' href = \"http://kociemba.org/cube.htm\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"\"\u003eKociemba Two Phase algorithm\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 63.7px 7.91667px; transform-origin: 63.7px 7.91667px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e can solve the Cube in 30 moves or less. The basic theory is that any cube can transition to an H-cube by 12 moves using all possible 18 move types. An H-cube is defined as having no rotations or flips of corners or edges, respectively, and has all middle edges in the middle row. The cube can be solved from any H-cube state in 18 moves or less using only the moves U U' U2 D D' D2 F2 L2 R2 B2.\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 1.95px 7.91667px; transform-origin: 1.95px 7.91667px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e \u003c/span\u003e\u003c/span\u003e\u003ca target='_blank' href = \"http://kociemba.org/math/CubeDefs.htm#faceturns\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"\"\u003eDefinitions of Moves / Rotates / Flips for Corners and Edges\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 151.317px 7.91667px; transform-origin: 151.317px 7.91667px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e. The Two-Phase algorithm typically solves in 24 moves or less.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 134.917px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 67.4667px; text-align: center; transform-origin: 384px 67.4667px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cimg class=\"imageNode\" style=\"vertical-align: baseline\" src=\"data:image/gif;base64,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\" data-image-state=\"image-loaded\"\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 242.917px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 121.467px; text-align: center; transform-origin: 384px 121.467px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cimg class=\"imageNode\" style=\"vertical-align: baseline\" src=\"data:image/png;base64,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\" data-image-state=\"image-loaded\"\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 63px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 31.5px; text-align: left; transform-origin: 384px 31.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 376.667px 7.91667px; transform-origin: 376.667px 7.91667px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eRubik's Cube has 48 faces that are assigned to a vector as in the above figure. U refers to the White face, F-Blue, L-Red, R-Orange, D-Yellow, and B-Green. Moves (1-6 UFDLBR 7-12 U'F'D'L'B'R' 13-18 U2F2D2L2B2R2) are clockwise looking towards the center, primes are CCW (eq U'), and twos are a half turn of a face.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgb(247, 247, 247); block-size: 40.8667px; border-bottom-left-radius: 4px; border-bottom-right-radius: 4px; border-end-end-radius: 4px; border-end-start-radius: 4px; border-start-end-radius: 4px; border-start-start-radius: 4px; border-top-left-radius: 4px; border-top-right-radius: 4px; margin-block-end: 10px; margin-block-start: 10px; margin-bottom: 10px; margin-inline-end: 3px; margin-inline-start: 3px; margin-left: 3px; margin-right: 3px; margin-top: 10px; perspective-origin: 404px 20.4333px; transform-origin: 404px 20.4333px; margin-left: 3px; margin-top: 10px; margin-bottom: 10px; margin-right: 3px; \"\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 0.833333px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 0.833333px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 0.833333px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 0.833333px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 404px 10.2167px; transform-origin: 404px 10.2167px; white-space: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 192.5px 7.91667px; transform-origin: 192.5px 7.91667px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; perspective-origin: 15.4px 7.91667px; transform-origin: 15.4px 7.91667px; \"\u003eThe \u003c/span\u003e\u003cspan style=\"border-block-end-color: rgb(170, 4, 249); border-block-start-color: rgb(170, 4, 249); border-bottom-color: rgb(170, 4, 249); border-inline-end-color: rgb(170, 4, 249); border-inline-start-color: rgb(170, 4, 249); border-left-color: rgb(170, 4, 249); border-right-color: rgb(170, 4, 249); border-top-color: rgb(170, 4, 249); caret-color: rgb(170, 4, 249); color: rgb(170, 4, 249); column-rule-color: rgb(170, 4, 249); margin-inline-end: 0px; margin-right: 0px; outline-color: rgb(170, 4, 249); perspective-origin: 177.1px 7.91667px; text-decoration: none; text-decoration-color: rgb(170, 4, 249); text-emphasis-color: rgb(170, 4, 249); transform-origin: 177.1px 7.91667px; \"\u003ecolor to numeric coding is [RWBYGO] [012345]. \u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 0.833333px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 0.833333px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 0.833333px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 0.833333px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 404px 10.2167px; transform-origin: 404px 10.2167px; white-space: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 300.3px 7.91667px; transform-origin: 300.3px 7.91667px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; perspective-origin: 7.7px 7.91667px; transform-origin: 7.7px 7.91667px; \"\u003eA \u003c/span\u003e\u003cspan style=\"border-block-end-color: rgb(170, 4, 249); border-block-start-color: rgb(170, 4, 249); border-bottom-color: rgb(170, 4, 249); border-inline-end-color: rgb(170, 4, 249); border-inline-start-color: rgb(170, 4, 249); border-left-color: rgb(170, 4, 249); border-right-color: rgb(170, 4, 249); border-top-color: rgb(170, 4, 249); caret-color: rgb(170, 4, 249); color: rgb(170, 4, 249); column-rule-color: rgb(170, 4, 249); margin-inline-end: 0px; margin-right: 0px; outline-color: rgb(170, 4, 249); perspective-origin: 292.6px 7.91667px; text-decoration: none; text-decoration-color: rgb(170, 4, 249); text-emphasis-color: rgb(170, 4, 249); transform-origin: 292.6px 7.91667px; \"\u003esolved cube is [0000 0000 1111 1111 2222 2222 3333 3333 4444 4444 5555 5555]\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 10px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 10px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 10px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 19.4333px 7.91667px; transform-origin: 19.4333px 7.91667px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003eInput:\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 18.6833px 7.91667px; transform-origin: 18.6833px 7.91667px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e Cube\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 146.25px 7.91667px; transform-origin: 146.25px 7.91667px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eCube is a 48 long row vector of values 0 thru 5.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 25.2667px 7.91667px; transform-origin: 25.2667px 7.91667px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003eOutput:\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 42.8px 7.91667px; transform-origin: 42.8px 7.91667px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e Move_Vector\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 189.433px 7.91667px; transform-origin: 189.433px 7.91667px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eMove_Vector is an empty to 30 element vector of values 1:18\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 37.3333px 7.91667px; transform-origin: 37.3333px 7.91667px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003eConstraint:\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 108.917px 7.91667px; transform-origin: 108.917px 7.91667px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e Solution must be 30 moves or less\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 28.3833px 7.91667px; transform-origin: 28.3833px 7.91667px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003eScoring:\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 136.3px 7.91667px; transform-origin: 136.3px 7.91667px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e Moves + Size / 2000 + e^(avg time sec / 3 )\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 42px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 21px; text-align: left; transform-origin: 384px 21px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003ca target='_blank' href = \"http://cube20.org/src/\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"\"\u003eTwo Phase Source code\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 301.833px 7.91667px; transform-origin: 301.833px 7.91667px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e is fairly complex and may require a 500MB database file. Its goal is to find solutions of 20 or less starting with Two Phase.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003ca target='_blank' href = \"https://sites.google.com/site/razapor/matlab_cody/Cube30rev001.ppt?attredirects=0\u0026amp;d=1\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"\"\u003e30 move Cube Solution in Matlab (rought draft)\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e","function_template":"function [v]=Rubik_Solver(cube)\r\n% moves 1-6 UFDLBR 7-12 U'F;D'L'B'R' 13-18 U2F2D2L2B2R2\r\n% Return v as a numeric row vector of k values in range 1:18\r\n  v=[];\r\nend","test_suite":"%%\r\nfeval(@assignin,'caller','score',100);\r\n%%\r\nvf=[ 17 2 3 20 5 22 7 8 11 13 16 10 15 9 12 14 41 18 19 44 21 46 23 24 25 26 27 28 29 30 31 32 33 34 6 36 4 38 39 1 40 42 43 37 45 35 47 48; \r\n  1 2 3 4 5 25 28 30 9 10 8 12 7 14 15 6 19 21 24 18 23 17 20 22 43 26 27 42 29 41 31 32 33 34 35 36 37 38 39 40 11 13 16 44 45 46 47 48 ;\r\n  1 2 38 4 36 6 7 33 9 10 11 12 13 14 15 16 17 18 3 20 5 22 23 8 27 29 32 26 31 25 28 30 48 34 35 45 37 43 39 40 41 42 19 44 21 46 47 24 ;\r\n  3 5 8 2 7 1 4 6 33 34 35 12 13 14 15 16 9 10 11 20 21 22 23 24 17 18 19 28 29 30 31 32 25 26 27 36 37 38 39 40 41 42 43 44 45 46 47 48 ;\r\n  14 12 9 4 5 6 7 8 46 10 11 47 13 48 15 16 17 18 19 20 21 22 23 24 25 26 1 28 2 30 31 3 35 37 40 34 39 33 36 38 41 42 43 44 45 32 29 27 ;\r\n  1 2 3 4 5 6 7 8 9 10 11 12 13 22 23 24 17 18 19 20 21 30 31 32 25 26 27 28 29 38 39 40 33 34 35 36 37 14 15 16 43 45 48 42 47 41 44 46 ;\r\n  40 2 3 37 5 35 7 8 14 12 9 15 10 16 13 11 1 18 19 4 21 6 23 24 25 26 27 28 29 30 31 32 33 34 46 36 44 38 39 41 17 42 43 20 45 22 47 48 ;\r\n  1 2 3 4 5 16 13 11 9 10 41 12 42 14 15 43 22 20 17 23 18 24 21 19 6 26 27 7 29 8 31 32 33 34 35 36 37 38 39 40 30 28 25 44 45 46 47 48 ;\r\n  1 2 19 4 21 6 7 24 9 10 11 12 13 14 15 16 17 18 43 20 45 22 23 48 30 28 25 31 26 32 29 27 8 34 35 5 37 3 39 40 41 42 38 44 36 46 47 33 ;\r\n  6 4 1 7 2 8 5 3 17 18 19 12 13 14 15 16 25 26 27 20 21 22 23 24 33 34 35 28 29 30 31 32 9 10 11 36 37 38 39 40 41 42 43 44 45 46 47 48 ;\r\n  27 29 32 4 5 6 7 8 3 10 11 2 13 1 15 16 17 18 19 20 21 22 23 24 25 26 48 28 47 30 31 46 38 36 33 39 34 40 37 35 41 42 43 44 45 9 12 14 ;\r\n  1 2 3 4 5 6 7 8 9 10 11 12 13 38 39 40 17 18 19 20 21 14 15 16 25 26 27 28 29 22 23 24 33 34 35 36 37 30 31 32 46 44 41 47 42 48 45 43 ;\r\n  41 2 3 44 5 46 7 8 16 15 14 13 12 11 10 9 40 18 19 37 21 35 23 24 25 26 27 28 29 30 31 32 33 34 22 36 20 38 39 17 1 42 43 4 45 6 47 48 ;\r\n  1 2 3 4 5 43 42 41 9 10 30 12 28 14 15 25 24 23 22 21 20 19 18 17 16 26 27 13 29 11 31 32 33 34 35 36 37 38 39 40 8 7 6 44 45 46 47 48 ;\r\n  1 2 43 4 45 6 7 48 9 10 11 12 13 14 15 16 17 18 38 20 36 22 23 33 32 31 30 29 28 27 26 25 24 34 35 21 37 19 39 40 41 42 3 44 5 46 47 8 ;\r\n  8 7 6 5 4 3 2 1 25 26 27 12 13 14 15 16 33 34 35 20 21 22 23 24 9 10 11 28 29 30 31 32 17 18 19 36 37 38 39 40 41 42 43 44 45 46 47 48 ;\r\n  48 47 46 4 5 6 7 8 32 10 11 29 13 27 15 16 17 18 19 20 21 22 23 24 25 26 14 28 12 30 31 9 40 39 38 37 36 35 34 33 41 42 43 44 45 3 2 1 ; \r\n  1 2 3 4 5 6 7 8 9 10 11 12 13 30 31 32 17 18 19 20 21 38 39 40 25 26 27 28 29 14 15 16 33 34 35 36 37 22 23 24 48 47 46 45 44 43 42 41 ];\r\n\r\n cube_orig=[zeros(1,8) ones(1,8) ones(1,8)*2 ones(1,8)*3 ones(1,8)*4 ones(1,8)*5]; \r\n tsum=0;\r\n msum=0;\r\n Lbest=30;\r\n for cube_sets=1:4\r\n  if cube_sets==2\r\n   tsum=0;\r\n   msum=0;\r\n  end\r\n encode=randi(18,1,80);\r\n fprintf('Encode: ');fprintf('%i ',encode);fprintf('\\n')\r\n r=cube_orig;\r\n for i= encode\r\n  r=r(vf(i,:));\r\n end\r\n encode=[]; % anti-shortcut\r\n encode_str='';\r\n cube=r;\r\n fprintf('%i',r);fprintf('\\n')\r\n\r\n% Time function\r\n ta=clock;\r\n [v]=Rubik_Solver(cube);\r\n t1=etime(clock,ta)*1000; % time in msec\r\n tsum=tsum+t1;\r\n Lv=length(v);\r\n msum=msum+Lv;\r\n assert(Lv\u003c=30)\r\n \r\n fprintf('Time: %.0f msec  Total Time %.0f\\n',t1,tsum)\r\n \r\n fprintf('Solution length %i\\n',length(v))\r\n fprintf('%i ',v);fprintf('\\n')\r\n \r\n r=cube;\r\n for i=v\r\n  r=r(vf(i,:));\r\n end\r\n \r\n fprintf('Solved Cube\\n');fprintf('%i',r);fprintf('\\n')\r\n\r\n tf=isequal(r,cube_orig);\r\n fprintf('Solved %i Moves %i \\n\\n\\n\\n',tf, Lv)\r\n assert(tf)\r\n assert(~isequal(1,2))\r\n if Lv\u003cLbest,Lbest=Lv;end\r\n \r\n end % cubesets\r\n\r\n msiz=mtree('Rubik_Solver.m','-file').count\r\n tsum=tsum/3000; % avg in seconds\r\n msum=msum/3;\r\n\r\nscore=msum+msiz/2000+exp(tsum/3);\r\n\r\nfprintf('Size %.0f  Avg Time %5.2f  Moves Avg %5.1f\\n',msiz,tsum,msum)\r\n\r\nfeval(  @assignin,'caller','score',floor(min( 100,score ))  );\r\n","published":true,"deleted":false,"likes_count":4,"comments_count":0,"created_by":3097,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":2,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2012-12-25T04:50:18.000Z","updated_at":"2025-12-16T02:49:54.000Z","published_at":"2012-12-25T05:21:15.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThis Challenge is to solve a thoroughly scrambled Rubik's cube with the best score (30 moves max). Score is Moves + Size/2000 + e^(avg time sec / 3).\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eRubik's Cube can be solved in 20 moves or less from any position. The\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"http://kociemba.org/cube.htm\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eKociemba Two Phase algorithm\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e can solve the Cube in 30 moves or less. The basic theory is that any cube can transition to an H-cube by 12 moves using all possible 18 move types. An H-cube is defined as having no rotations or flips of corners or edges, respectively, and has all middle edges in the middle row. The cube can be solved from any H-cube state in 18 moves or less using only the moves U U' U2 D D' D2 F2 L2 R2 B2.\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"http://kociemba.org/math/CubeDefs.htm#faceturns\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eDefinitions of Moves / Rotates / Flips for Corners and Edges\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e. The Two-Phase algorithm typically solves in 24 moves or less.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"center\\\"/\u003e\u003c/w:pPr\u003e\u003cw:customXml w:element=\\\"image\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"height\\\" w:val=\\\"-1\\\"/\u003e\u003cw:attr w:name=\\\"width\\\" w:val=\\\"-1\\\"/\u003e\u003cw:attr w:name=\\\"verticalAlign\\\" w:val=\\\"baseline\\\"/\u003e\u003cw:attr w:name=\\\"altText\\\" w:val=\\\"\\\"/\u003e\u003cw:attr w:name=\\\"relationshipId\\\" w:val=\\\"rId1\\\"/\u003e\u003c/w:customXmlPr\u003e\u003c/w:customXml\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"center\\\"/\u003e\u003c/w:pPr\u003e\u003cw:customXml w:element=\\\"image\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"height\\\" w:val=\\\"-1\\\"/\u003e\u003cw:attr w:name=\\\"width\\\" w:val=\\\"-1\\\"/\u003e\u003cw:attr w:name=\\\"verticalAlign\\\" w:val=\\\"baseline\\\"/\u003e\u003cw:attr w:name=\\\"altText\\\" w:val=\\\"\\\"/\u003e\u003cw:attr w:name=\\\"relationshipId\\\" w:val=\\\"rId2\\\"/\u003e\u003c/w:customXmlPr\u003e\u003c/w:customXml\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eRubik's Cube has 48 faces that are assigned to a vector as in the above figure. U refers to the White face, F-Blue, L-Red, R-Orange, D-Yellow, and B-Green. Moves (1-6 UFDLBR 7-12 U'F'D'L'B'R' 13-18 U2F2D2L2B2R2) are clockwise looking towards the center, primes are CCW (eq U'), and twos are a half turn of a face.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[The color to numeric coding is [RWBYGO] [012345]. \\nA solved cube is [0000 0000 1111 1111 2222 2222 3333 3333 4444 4444 5555 5555]]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eInput:\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e Cube\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eCube is a 48 long row vector of values 0 thru 5.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eOutput:\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e Move_Vector\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eMove_Vector is an empty to 30 element vector of values 1:18\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eConstraint:\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e Solution must be 30 moves or less\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eScoring:\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e Moves + Size / 2000 + e^(avg time sec / 3 )\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:hyperlink w:docLocation=\\\"http://cube20.org/src/\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eTwo Phase Source code\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e is fairly complex and may require a 500MB database file. Its goal is to find solutions of 20 or less starting with Two Phase.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:hyperlink w:docLocation=\\\"https://sites.google.com/site/razapor/matlab_cody/Cube30rev001.ppt?attredirects=0\u0026amp;d=1\\\"\u003e\u003cw:r\u003e\u003cw:t\u003e30 move Cube Solution in Matlab (rought draft)\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\",\"relationship\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/image\",\"target\":\"/media/image1.gif\",\"relationshipId\":\"rId1\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/image\",\"target\":\"/media/image1.png\",\"relationshipId\":\"rId2\"}]},{\"partUri\":\"/media/image1.gif\",\"contentType\":\"image/gif\",\"content\":\"data:image/gif;base64,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\",\"relationship\":null},{\"partUri\":\"/media/image1.png\",\"contentType\":\"image/png\",\"content\":\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADtCAIAAAB1W61MAAA8KklEQVR42u2dB1gUx/vHX6QevSkW7CZ2Y2KLiS3RGKPGHkKiMWpU7F1EmiDSpbdDQIpi12iM2LuCAmIDVFCKoPR29Hbvf3fvgAPu4FhCwv3+u888PndzO9/bdT7MvDvznTkICQnx8/Pzl+TD29s7JiYG23cQIikpKe1RIIoTIu28jCtXrvj4+Eh0dRA4EVABr2Ik+nBxcYmKimpnjRIiSUlJ7VEgihMi7byMv//+283NTdJrhICKAYsBiwGLAYsBq1OBVVtelpudlZ2bV17LbSNY3PLiotLyKsGsytLS7Kys3PyCai5XDLCEKPA/qCovLMgrLqtgwJJIsDLfXFsyeYRO1x5aXbWm6e9JK+SKC1Zl6WnPPd1kWasPnK9H9Poxtxlffq7bq6eqqsr8tY5ZlS2CVVt12suom6yCgELDEWSsBwDfr7etZcCSPLDyX03upzReb19GcUVh4sOvBqh+9YezOGBVZj7VmzKi74BhvTU0fjE5wc8tTjCY953LifBybmX4aWdVgMXmgS2AFXxgfa+BQ3qrCyjUHWmPjo7rN2jYoG5jfzFmwJI8sOL/smIp9riaUsZ7+/iYiZLWqOjMmlbByom/4+B7tKa6eMP0wfN3hvI7r9rqqsryulNK1nylqjV1fakosGrLbl06xSnK2jBjSL1C3ZG3fPqo9QdP7Vv15fCFuxmwJA+sqKN7FFkDInL4IU5+7GlFVeXQqFyxY6zSVZMGNcOCx02B3ii1UXpmta3EWEIUbvls6P/FokJE0yUjhi00ZMCSPLDy4//qIwsL9voVFpdx8jM9ds4DkGffSm0/WO/u+7MArE7FYBvBqk4L/2Jgd9eweOK14cJhDFiSGrzfCXUYqKOq01N3wOCx+ktmySqpnXiS116wSlMXDe/R/7stBa0/FTZR4B78Y/p3Bu6817v1Ro7U281lwJLM4QZuOacgOzu7qBzTb7hpqA1+kF7RPrDyd88eptJ3wtP0amwjWEVxf2kpyExbvNZw1w7D7ZvHDNTU6P/ZFiOnxPwqBiwJHiA9oD+295Q1ZW0Yxyr9Y8onC3YeE8gpsvx1jOqAseHJHPEGSBsplH+MtbY02bl96+YtWw13MGBJLFglH+LPnb2eVcgpKcwNtlnZRb734fsJ4gw3cKsr8/Lyy/NTf53Qd9ZGn6Kq0pJSop2rdd08DVT7ng5PrqkoycnOzsnJrazmigKrrKS4LI+vwKkqLeKUNon/d+uNGKHHPBVK5DjW658njdTq0auXTq/RE+efuBkv5sh7UdzlkYN66er27qqlqd2tp5am+m5bX8x/OVpLXkGzx6efDOrbt29v3V69Bo28HFckAqxal51L1LW68RR0tNWX7HSpbQyW+dIJE5aaM2BJZFdYVlqSnZ2VnZ1bWlYj/lwh0WLl5uQQLVJ+QUF+fl52VlZxSRlyaziFhURGTsPRUotVyikkvpivkE20m01aLCwv5XBKy5kpHYmPsZhJaAYsBiwGrP/6IGri2rVraWlpSXSP7OxsU1PTu3fvvn//np4CUZAoTogQUvQUkpOT3717d+zYMQ8PDwasznIQleHSjsPHx2fBggUEFu7u7vQUiIJEcUKEkKKn4Orq6ujoaGNjw2azGbCYrvAf7govXbrEdIUMWEyMxYDFgMWAxYDFgNWpweJWlRcVcWoaW5G5teV5ueRUTFV17b8CVlPPO7emqqiwgD+8mp2dm18keIUMWJ0drJxXD36ZMVRT55vnhQ0AVRe+N/x5Wtdu2t27d12+162qo8ES5nkvfHGhT1e17r169+vbV7e79pDpq9MqGLAkBKy//Ix1NbqN/nyohvbEJ/n1MzmVexcM7jFq7vOPpQUZL78YMGDPodsdCpZQz3teVEhX7c+vJWQUF+QzLZZkgVV5OsD5ysvsj/c8tDTHROXV1HuhNBQUXK685b21XDl34A8bKjsOLBGe99yokG5dJ8bk1jAxlqTGWO+uuWiofxFdB9aT44aKiv0iMvkd4Cmj1az+32dUdXSM1dQqWN9icfLzCkrLuQxYkg7WdffVyr2nJtXZ/K65b2ZpjI3j/Ntg1cVYffr20tHoM9Qm8O8aBiyJBuuKyyol3WnJdWBdd9us1H1iQsm/DRbvqTA3N5dTmHfMcR0Ay+lCHAOWBIMVGbJLXqH33Y/8Z7CQPStUB/9Yv8TwXwOr8WNj4S+jFKcauDBgSRJYabdctTXHPc/jDzdUpt3/RF12oxvvSbD21++nzDcO6fhxrLJ13wxesrP+qZBbwimsruVfUmHi1QEqcoZ+9xiwJAIs7uWjrgYbty3/8Us5ObUla9Zv3Wn0jFqZc8FlvYy0pv66bQa/fv/ZFP3XBR06jsW9HOq+fu0fQ3UU+n0xfeOWDW7HrhG5FmumT1+wcueO7ds2GgzpqTJp5YFiJsaSILD+WGOwbYfhvn2m2zdv2rh9z7N0fmwVGXZk05o1m7btjk3J7OCRd24YcRlr1+81MTM22rVuzR+uRy+T6zty3jgabl+/aaPB2k2BFx7XME+FEtcVMnOFDFgMWAxYDFgMWP9PwGI87wxYHXUwnncGLKYrZDzvDFhMjMWAxYDFgMWAxYAlyWAJ9bzz8jlFnCZbvou/zzu5y0j793nncovy8ohHyNy8Ii7jIJUgsLLj7zf3vNfnd9P5JrWwtcUUQvZ5x4gzXl+P+rR7L10NDbX5Bg5Z1S173iuF7vPOLclw3vJLn+49evfW1e4+2OvaawYsyQDrxnHbQTo9PmvqeW/I76Y9MSm/pgWwqvNe/TF7fLN93hM3LvrOIeRWSXXN0zAvDYD1ntdbAOuk087eg5rv8160Z95n3QZPuRGbXlrMSXgRcetFCgOWRIBVE/3g+ou04vd33AQ974L53TXHvM1rCaySjITLt8O51UXrv228z3tF3XZWNQULhyrN3uovEixu1asX0RWlOYI7xRPHA79dij3GPflQxcRYkhpjNTH61R9vr7l0Vf+iZbBE+z8rc/NyOQW5oXYG3YdN+vt5VluNfpbLxg2avfnx7Yvb1q8xMNh2LCyaAYsBi7eFpK5ur57yclKzNnqWctvqIK0xXzoBQGmW3h+GewwNfp4JXWQM/W4yYP2/b7GoLSSLSoqeXAr6VBk+0zOvaBtYtXsWj9Cdvraojkj7lZNURizJrmXA+v8NVqNlsTbLpWDAw8zKNnWFhzbN1Br3e/1e3meMfpXXmlK/dogBSwLAauJ5rz/e33LtrjkuKU+cvRsaOdYLUl5cuPukLuqutP5tvFT3b9+WtMnzjjEnzFlqfW4n8vZaLto4ve/nC01qmK5QEsAS5nn/QHZZ9fksOTX95Ss9jl3higCrLP3Znh2bt2824DnW12/ecOLvuxVpD4d015w4W9/IaK/+rDEysurWpyLa4HmnrMlY8/G3L3ur9hu93chk4eSRrH6fX3mRzcRYEgNWU897HVi8fPN9phsNVrseDWsJrO0bN2zawnOsr1n9x9FzJBalma+d9+5Yt379lt0mkYl5bfW8876uqjTLz3avgcHanXtdEgqY7bglrStk5goZsBiw/ufAOhQY6OnrSzt5+/p6taO4J1Xcu30Kzh4eT589+x8x+oVddnHz9PT2pZ28fXy92lGcSF6USHsUDvkHQoinp7+TE70U4OTk5eR0iG5xXjpEiQTQvgZnZw9rmw3rV++32mZhsYVesrXdNWvWlK1bV+zfT1OEKEgUJ0QIKdqXYWKy0crCONDX1d/biV4K8Hbycnc65OVEW4FIRHFCJKAdCiH+nlCpo1PJYtFLyGK5slgJLFYtXYVaqrgrJUVbIVtBRk2qL8AWgK3UvzTSLoApACsAttFV2EYVn0JJ0VYwMPtRCY8qVPqy6CUMZrn+ykqwYdX601QgChLFCRFCivZlVAbqAKqpIQDt5AKQ1I7iSBV3aZ9CIYAazGqfRme5FYsf1fAooC/dFAwuepBkDehPV8GfLE6IEFL0LyNQjQGLAYsBiwGLAYsB658Eiw3oAehOvRDM9wL0FBssb0A3qkjLyi2AJVTBmyru3likNbC64IxfcN8WVJBuR21I4TIDtDbDPgo0a2PAWHRwQy9vPLgPdZXEB2vsDLTch33rvpY1AO1c0dMD3dzQ3R0dHHHvelSQEXkr3QahpRP6+KCRASrLN+QP+QqdPJB9CFfNRtkWb0VVB/cLUxClLBwssra6YoQFPjEm4nr0oTKJfz26YNhSvLNULLAIGs7NwxfueG1aQ/ULVRYFllAFAuvQsfjMDeO88fk+PKLEF2kJLNWBePIWNU8aj2oK9MFSGYJJJYglOFWNDljzjLCiAv8+gvaO+PcVXPGtOGCxVNHhJHIRuUUNXysIlv1BjH6L5U9RTQRY45ZiZh6e8EJXbyxCjD6D2lT+lJVYXI1hR9DFG0tr8Zyz6FuRx0PX8aJ/UwVRyiLBIlqUm47UFFEhnlcjK5io18CBmEjVTtqZOkREg0VUtt8nmEVt2/TWgnzLFqEsCiyhCgRVl42wugJTjuAzR0y5gje/5begosFSwNAH+Kcbmrth3mvUkKMPlukhvPAI83JwqkabwRo4EwsRzfX5b6VkUFZGHLD2h2LEn2hgjvl5or4WL97FoF0ib2X0JJw6jv96kRH5/7l2KoIyvsjDsw78/Dk7yfx5nwq/FQUVnPI9SgsorJshXJmXLxwsoqMJHo8F7/EZGysK8LwGBZYCvnmASW4Y5YWp51sHi+ikok/jhwv4PgFTbEhNtghlUWA1VyBS6EysQIzUJz8lu0gZ9JNprSuU6oJq6tSt78Hid6ghTxOsMYswORYNTLCkmA5Ye4IwNwaVpNoWY0mhKnVPQxdhaTFOE/a1yv0x9jlO6CXWrQxeQFb/1u+x2wysqcXfxtQ1gbqYXYX7l7d+KzwFw0Wt5jcDy0MKEx7iW0s8vRSry+uqvwsGqpPVedkU0y61AhZx/qlFWJ6GZ4bh2wRMteODJVxZGFhE/ulmCsS3PwrC8hhkS6EL9dazDTEW4GKjdoDFwrB49FqJ4/WwqqLtYMngmdd41xdnL0JvX/R2xVkT2xS8j1gsEqxfTPFKoLi3ssIOsQa/UMVvN2B1MY5V5edLq2JcGR4xav1WeApTerea3xgsokbPr8Xyt3gE8MwKrKloqH5eT3TdrBWwiHwvFqbGY/wmdAVMTeVj4SlauTlYxMmvL+Cr7Y0VZDDxNab7YtgijPPFOFcMm9gQ13csWMusMfEBqgBOXEmCNaWtYMkhuU91CZ47grZ2eJYKKbbO/gfAYuHt17hjmVi3Iv8JvuLgAz+q+TbEqhwcXP/8oIiRRM9o3sqtCCq0li8AFslKL8xKxYgF6EwEzn+Q1X9Oo+ExUBywiCjqhjUWPMDDRKMijSmpmGJHKYhWbgIWEU4FDsakUAySaqTgLYfvqNpJOoJP7TCJqp37s/lsdSBYOl/g+0LcPZcKwLdjdSXOH4TSsm0D63IyPvJHuboGLCQGky7VvaUP1jh9LKvGiUPEuBUZDLiHeYk4Upv6zzBEbmnjFqsUg3a3eCuNFVrLFwCLqKFHoVh0i3zU8pfFsG1YU4lhg/CQrLhgEUwEf4GcQoyYS5YK7Ilp6ZjmRp5MKt8UrtwELOIyIoPxyQ481KVOwZ3E1EceU5Ix05/8FqIlc5XBNzFYeAn9eM8WHQfW18uxiHheSMQk4utzySe00ny0Xtm2GMvnIb46zQ+AiWR9AcueonKXdoIV9Bg/3kZWq7cijU7nsSoTvxlWN37xG/ln+evohhgrqxL3LxN9K1Lo9GcjBVHKTcFiU01CQhRWZSPnHRYnY1kutY42H5+s5LcKrYJFdFjnlmNlBRYnYnEKFqdidTVyKzDhMCY8wspM4cp+AmCRlyGPb4iTs8gzeQq1ZVhwB4MU8AXxl3Ga/4RIsBV1Aauf4uEuVCPXKlgL9iAnATXb/lQoI0eG/1raqCSP87bRarGIGMSRvKVh1GOEtDo+yMTLzuJ3hZ8uQA4Hv9ZslDloJlYhWv7c+q1YHcWiZBzXX6DzGoSplRhQ10TN2421xTi5l8hbmbsCcxNx/ICm39VcWViMJYUByhikicHaeFi+abtCEOAEGGaK7y/yA2ehXeEhOTLMJxSCNTCwB7+9CSA+Fa3cPMYKUMFgrUYKh6lvvOmINVl4XJ3sT73VMSMTU5z5nIkGSxpXGaK7M16NIgcqDrHR2RYHsGgOV3+zHmuq8Ju2PxXKD8DobEyLQTtrDH+FWXE4to84YP2wCtnuGHoVa6rx/CF0c26oXdfzWJOKg+RbuZVfLck/4+i7uP8AOe7lewh/X0KFWaZYW4NnvNEjhOxPXTaJvBWZnuTYRGw4X8GbjYZUe61v0UiZzF9V3yg3Dt7ZVHfmQ4VKf1L/h39SkRBbGm8bYqwzpj3BknSM98Vbs/iNVvPgnadAtF5e8piagam2JJQ+IpSFgsUWoeA3ALOysTgGn1pj5issjcMzfVqNsSiwfH3Q0R4t96ObB7ra0Qer3xdobor9aI28K+uisR36sNF6N2ooivlUSIDl74vOjmhpiU5u5AMlHyw5XGeKv89ovfGdvAjt7NDWnhyjJ6qfTYD1E/+jr2aj+yE85IFzv27pVuR1cJcFOjjwFerB+nphI+WWwBIcnwz9AqNMMZQaH+eBFe+Dz+wxxhrj/fH2D8LBajSCL403t+PNGY3mhZootzyl00SBON9fFyPtMI6NT3djoCIJHzNXKGGT0OzGk3FeAjN07gLzdy1PQns2m1tsrtzyJHQTBZ+6qUZ34HPJgMW4Gxh3w/8nsOar4Qkg42t6KRRc9CHJjnj0pasQRBYnRAgp+pdxRA0i1dQiAOil55Sd9ixAJF2FSKr4NkqKtsJ1AGX4EuARwGNJv5XVk5TjLCDCiGZ6bg7bpsPZdRBpTFOBKEgUJ0QIKdqXEWmhBgVqavkA9FI1gDXAUwAOXQUOVdyakqKtkAKgCtMBCqjGS7JvZc8sVaIryXehmap9wHoBPDUFjjtNBaIgUZwQIaRoX0aBN9MVdsIYi+iDDtFNIVSMZUP1R/QUAsjiZIwV0o7LCGLAYoJ3JnhnwGLAYsDqYM87zzbjTuWz/y2wmnjem4yl8S6mdbBkVPD37eRkzsEDOFr3v6gNavSf7U2OT5PJlRyxXq+PMjQ973zr4Qx0YyPbC6dP7PBbEel5H4m2LmT+3nW0PO9EziEVvLUdX/vh4814SKZhcLLjwBL0vJPTQbzRf2986UYlV3xmh/f0yQCrpblCOV2MSMSHl9DKAaNSEDNw2oj/EixXV3IBQxZizHFxwBLqeSfSbwewqhiPeKHnIcz9gHoTOvJWRHjexyzE9EK8GELeUA4XH4eifJs870RD5aeLHxMx4xLGOGLee0xxJ+uS3ZFgNfG8ezcByxWfe2ApYvbx1sBS7otLZqMS9VpjKOYhXnP9j/uPnlMwvxK3zqLteZdWw1dl6LOV//bIdbxxsANvRaTnfTJOG8s/Z/5uMv/7vm30vB/ui1dnk1V4EPCCPmIlXqyb/e0gsJp73gW7QhfikqZgeSU+mMXvDcWKsaSU8FEhRgWh1H8K1oEzWPgCdaRpe96J+4jKxdO2dYspHuARw3/pVkR53r/8DaurcFbfNnre2XUGc6KCT88gDVJXRvCn8DoCLKGed3bjCUSiQS5/gUHSYiz/EmwqKhCdV/+XLZbSUMxB9DJop+d90nLMLMBTbDRxwAtHsY/Mv3QrTbztiqqoqYZ9xuGNF3jVR7BvF9vzXl+jYWux4jUeZfFrtCPAEup5Zwv0kgFDsQzxhUHD/LRYYDlfwIp0HKn1X4Jl4IUEWUOV2r+YYl/d/sVmy/6lW2nubd/GxoIszCzEigxcOoWu592XekaLv4CvzcR1N9AAS6jn3UsALKLvu0PVznGltthm5hmTlbD52//yGV26Bz4vxsuObR1uaA6W21+YGY+TPsHh3+CHXHTb1PG3IszbTrRY2lqooYn2p8n/3TXTaXneCaquWWBxLAYrNNToPw6WcM+7FGlw5dPfA3OKMcWxUVPaClgz1pE2XkeD/3jwZ/4O4okIvx/cTrCGLcSqSlxYJ2PoiZUJIldC/zO3IsrzLjCkE1uFt1zb7nkn2omL68jn3ojljdqwfxYskZ73exhKdb5kX0zVzsXBYoM1cSkWc9FM/78eVZTHW6n47ETDkgq6nvfx1FKIZXVLIfZ4YVkcqkp34K0I8bxL4TfzcWR3/lvdcViMGLi7TZ53GbIK/1yKVVx8rE8+kblBB3aFwj3vVIvFwy4tFbNPNIx3tAJWzzHkoFHFB3RzQCcX9PBslzW5PWBNXEWtb5/ZppH35p73cX0QVPHME6zJRi9XdPfGjBzc93MH3oooz/s2H6zMRbYnOntgajEmP8BhGiKCd6Ged+LxPmQMOWhU8wFfOuBzF4z3E8uaTBssoZ53NkXzn1Tt3JnZMObeClg6I9DiAFpZows16v0fgjV5EVrsaGG7mzZ53rvIo/5GZPugjxd+N6ljb0WI573O2z5lPnr6orcP7lqFirJiTOkIOtPJka0RGH2AdLu/oEa9OxosUZ534kouLMLoHegv3XR/JWauUCI97+xmk3Re/9YkdBPPu7ewXbsYsBh3A+Nu+H8D1kI1PENVKr10Elx+haSDQNJJT+EoWZwQIaToX8ZxNfBWU3Oh/j9oJB+ABQCmAO50Fdyp4gsoKdoKNgAsGALgSiXJvpVZw1m+y8gGg17yWQoLRoPpHHDXp6lAFCSKEyKEFO3L8F6hBilqaknU3xqNlE39X94FeE9X4T1V3JSSoq3wHECF3GA9mbK/S/atbJ2uku9Mdkb0UvZBEou7u+C9LU0FoiBRnBAhpGhfRspBpivsbF3hPDU8TkVI9NJRcPmZWv4VSFchkFr+9TPVmdK+jBAGLCZ4Z4J3BiwGLAasjve8e7TR896yY92b1j7vgns3eIsJlpwyrjVCXzY6WePntDzvfT5DC1v+ruq+HjhtJJ3aUOuP5g7o442OVjhYtU1gCfW8fz0XPf3QwxmH9W/lVkTvxi5cWXzPOy8Nn4j2LrheT3AWVGzPu68y3jXCV34YuYXcq9inLfu88xzr1wzwhQu+dCdTvAf+NbKlXZOF7vNO6Bzuj1EO5Cbvz6zwuKoYe5BK98Rbr/DlHbS1xYdvsPoDTujfZrC+WYflVXjIm5wXogfWwImYysEHl9DKDiNeY0kijutHe593Iu3ywsoSDPFAv4vkzQ2QFXkronZjF6Usvue9fr/zE9HkPFv8eVRoq+f9UE9Me4W5d8jNP3MT8a2A806cfd7JzbQVMDkB8yPwmYNYYDXf553cjnsiFnEo670dZr7GqkQ824/fbrXkef9pDiry/u6GYgGi5xY6YOXFo6Y8/f5j/3nMus+/DHldTKtAu3W0Pe+6k0knrIkef6HGzcfovrYN+7yv+7bVHeTF8rzzN/49gNH3MPgGvg0T3FRVbM/7tTl1nvelWJWMoUotOUiF7NIuT6IZsxYdxOsKmysQfeKT81h2n/zUmcBaF4sr8Ok68kxxYywZNXwjsAjh3wTLMBiLX6EuNfndewwW1uD2+bQ979+uIzesnFz31vkEvvpTsBtqZZ93nmO9xR3kxfW8dxuDKXm46Es0/hNTr7YIVgued2+qMTszFysSWwJL6D7vTcDyarvnnSgVEYyVrzCYRYIVPAYrajB8vhiLKWTlUUsLNbTQKhiTo4Xu0ShWV+jHRhd7/GooHbA0huGd1xh7Fbdvwzsv8YStUFeWmEa/MXpk7RpM5b91CMXcCMEtblvZ511wl3YR2+aK63n3DsPbAeQLmystgtWC591PnvRIBWrhy+MYZ9zwKyZi7vPe0BUexJeOeH5oA1tiet7JAGsYfniNeVfx4TZMe4mJtvy1X62ANW4JJmVg+gfyxxiCdgtdoiNW8H7QAcMeklVquoiWbeYnsgMjjtwXOHt0u6zJChgaidwc9HJDZzf8yMGUm62DpTAY35Q03aW9TWA1UZjwG2a/xpFUWbswTAkT/KWn5p73FHw4Dx0JsCjP+xkNskkg6vXMEizKwLIsLE/FiyMb7FBC93nPv0vuku0qjckpmGxHZtYH7y8cMYWqnUeLhMdYPM/7uxAMkGpQ4D2fEr3hnz8RfzDkUf4CL40mc3zFabG0tVFJHWf+julleNO3+UrRNjyjW53E8kTs3cZdk/VMMfk1bl6I6t3xgB/mFODuH9vjeZdXxnV7STPWvv14/hZGhgr+vQi5la4D8cJjjLuHQ7RogtVEQbovPsslA/kFc3Dez/jXC8x7SW6b20NFmOc96iy5Ee9tPbw6H6P9sLYaY9bj6UEkWIfkSWdpgAreMiWD+sujhawrJJg4+hWW1uA7J7w8D28sx9xczAvDi2P47RDvN3CIFH2SDL2PyFLbijbzvMecw5RQvDyXr5D7N177liT1qgkWvcb7CzGwOz7xw7ICDP+xteBdVhblBLZTNzuLmIm92mH0W+9CthV9WW0AS04dU6vQcUNDjt0N/HhFcOFwy2ANW0T+hI/wH8SQxTuRdYG8iFsZ9g1+JDofF+wirnLTW+kxmHyoveDaoMDqj+ZWaGqKFhZotA8fvMWiJLQxwU+1m7dYMnhzKz7Zh1H7MNIYX/+F3BpMdMW/x1MNSRey4SGtUYPINuPFVn6j1QSs0HH4xAajTDDaAqMOYGEhciLx9gL++BPPnuoCeJuqHd4asiZgEZdxYwvG7G9QKIrAR6sxpBsWEtH6BjJKI+Aj/o25gcVXWvsBgSm/473L+PVwlJPDqYsxH/GyU9u6wi4s3GiI4/qiggJOXoyZXPQzbGNXKIsX4skecHw/lFfAsbPxYw0eNROnxVJURVVFnLQKy0pwwSCy2ZWVQqXe+NvPqKOOyuq44SDGnG/8/N/4Vvp9iSnFGH4K1RVRRQ27dkUVZUpZpamyvKzIW/E8g4/+JPd65imoNxuGI7rC1LAWYyzeEChR96eprvC0Bhkpn/8dP1zG88PJlTO3dpIjHxc/Eb4SWtAS6CqHyalkR0aonZmFd/UxSBkPK+J5ovnlYrwhv7ERGrw3USCCLS9ZTIrHshd4rh/6K+DZ2Vhcg2/MWmuxWH3w4HHMysKUFPIX4QLNsatCG2OsLriTjRkfMPU9GShYbhIcrhG3K9QdjiduYl4eJidjLu8y5MQBi1y4l41pH7CgAD+kYUYSLiLCMzX8MwpzP+KHLIy9g2NaHCDd6EFGDqlJmPiO/D/IzUOP/WT+Vp+mykvGCb8VxU/xdT5mpPIVMnIwjN3khzPR4hzGnmvxqbB+0OHccjKiOqdOtlIBffD5cfJtSRoWvSRHLFt1kJK+dTl8F4vvLEiF49PwQyyWpWPxeyxLwehNZNzd8nbcggq8cawjwzHxJlbkkQt4ynPwlTkGyomxElpKilz5RvyhaWiQr2mMvBOlNLUoBRVRsX/rwbuUHGpqt3wZQlusbl1RS5O8OS2itDa/XWEpkkpEUmytV1dQQnV11NQk40xt7UYtllDl5rciJY2qjRWat1jEt6goiTdXSP7GhBoeqlvN5yFFLuAJ6YoBqm1Y/kXEZAEKfFJ9FcniwV0xSKXRvFDLc4X1CjwRbznqZy8IEeJxVaphAoCZK5Qkz7sPNN3736eZ37xlsHwEdmNnC/w+hfiT0E3OFxRhM5PQjLuBcTeIDdZ0gCJq4+FCWqkWwJbyopbQVSihittSUrQVUv93wIrR04uaM4deips3z3DUqL++/TZm7lx6CkRBojghQkjRVrj9/ffd1VWUVVXU6B7q6uoKCgoqKvQViIMoTogQUrQVpGRZmxYNfR2yIIo9h16KC5pn+Muov6y/jfGbS0+BKEgUJ0QIKdqXEXNYD7yPH3cJDqaZQkKc2WyXw4fpKxDp8GFSJCSEtoKd76nbd2aVl0NhIc1UWwu2tvD8OZSU0FQgChLFCRFCip5CURH576mz2xzdT7p4B9NNIc7ubBevw+1QCCaKkyLeIbQVvP2Pg7+/v3c7Dh8fH+92H+0UcXEJjo6eiwjtSS4ukJTULgWiOCHSzsv4++/Nbm4SXyMEVO0FqzMcBFhRUXP+V8Da5OYWIOk1woDFgMWAxYDFgPWfg1VbA1eOwrrVsHk33I9tyL97AbZtg82bYdMG2GUNeVUtgZWVBJY7wcAAHAKgpLIh//kt2Loe1hmA21EobxGswgzYs4M8094fSgUUsByCXWDNWthlDImFDFiSAhYXNv8II78GQ1P4fiyAFATe539k/BN0HQrbDVsHKz4MBujCb+tJhjQBvvwZCqn8UGtQ6QYrN8L2DdBbDaZvhGrRYBktg1m/wM5N0FMWvloOlbz8Ylg+CfoOh50mMOsLYPWB+wkMWJIAVm0lxD6DolLqbRn8NAL6/gAV1Efbf4SftovVFWYmQULd2+hgIA7/h4BVMEYVNvrx8x8GgRILnucLB6umAt7FQQ1P4RgoyMPddPK191bQ/hxSOdRp1bB2Mnz+E9QyYElYjFUL+p/BiJ/4FbxzHnxnAJxqyMuDaq64MdazU9BFCk48JV8bzgPdz+DZR0AOLB4N4/T5yLYcYwWZgGJfSConXy8eBnN3Nnx0yghY/SGjigFLosB6dx9YAFan+G9t1oGMIvTtB920YIuduGBtmwMaoyG3lnpbCbsWkg2YijrMXA0cbksx1qsnsG0rLJsNGv3gdAS/BZ3aB1a7NpxzzR1YGhDHYcCSILBKYdFw6P8dFNTlVJSRbVVBISRFw4DeYHeudbAeBZIYeV7nv024DdNGw9wV8MdC0NYC26OtgLVlE2xaB/01YPpySKskuZykC2sEwXIDxR6QUMqAJTlg7Z4NKn3habrwdmjdIpi8shWw3tyErgBr7Plvy1NhSDfYWIfFGScAWTgV03pXmHIfNADWeZGvZ/eHOTsad4X94CPTFUoKWJa/guoACE8WOWK0/Af4YUNLYL17CP1VYKlVQ07MMVBWhOi6aL06Hz5RBMOjwsGqrYaK6rq3xTCBBT/uIl/v+BH6zqx7QkQwmQejFvNDQAaszg6W62by98dPh5OPZjnZkJND1lxWLLgHQmY+FBXDy9sw5DMIeykSrI9P4VNtskkrKoeifMjKgvIayHkKXaVhkTEUcKCUA0EW5FaCf8ULBysjChYug4+5UFIEHtsBpCHwIZn/8i9QALA/BdW1cD0IVLqA9zVmuEESwKp8D59pgoImfPoJ9O0LvXWh1yC4lgg1GaA/HXrpQJ8+0E0bAsNaCt4PG5KhVe8BMHAAKaKlATv2k/n3TsHng6FbT+jdAwaMhMMXRcdYlWC2Anr2Ir+x3wg4/HfDR+fY0E8DeumCdn9wCmUGSCUELG4tFBVCQQHZUNWnSqpXqimF3GzIzoa8fOC2ONxQUUoqEJE+rzhRhFNSF2mVkW+JVFrWypRObRXk5kBWszORC6VUK5hfClxmSkcix7GYuUIGLAYsBiwGrI4C69KlLe00+jFg/YNHsIfHHKJSaScfH1iwAExNwd2dpgJRkChOiBBS9BRcXcHREWxsfmOzDzNgdYrDzS342rU5aWlkm0EvEZE4gcXdu/D+PU0FoiBRnBAhpOgpJCfDu3dw7Ng6Dw+mK2S6ws7neWfAYsBigncGLAYsBiz++HspZGdBbn5T3xWRqsogh/gor9EYaUeARejn5VGDq+VCzi8vhtJyBiyJAuv6MZjxJej2AlVVmL8WsgT85q+uw8wvQEcHtLuD17WOBetiAHTrDj11oPsgCL3TaLbntCd0k4XVBxiwJAisYjCYBy4noJwL4adBFWCxeZ2b6j70lodVtlBQDG9fwq0XHQhWbRHsM4DwRKgohm2zQLY3JFETO5WZoDcF+g6A3hrwiwkDluSAxa2FKoEmas1XoDUVynivp8DYn/+lGIu4jOoK/uvEC6DIgiuUhycnHhx8oaYaNkyH+TsZsCQ0eK8FvVEwSo+agf4Ig5TB/hK5hCErC8rK/r3gPcAIFPtBUmmjzFWTGLAkFixBz3tBDKiyYPYvMH0saGnC2JkQk9axYAnxvDNg/S+A1djzXhANyjIwex2k5EAFBxZ/A58tarBudhBYgp73VKbF+t8Aq4nnnRMPmsrgdY//9oQRyGnxA+qO7gp5nncDdwYsyQdLiOedA+O1YIs//63/DlAfBlm1HfZU2Nzz3hijP6bAAgYsyQKruee9sobMP7gS1AdC+DsozYVJo2CVfQfGWKI871xquWx5Pvw6AWZtBE4VFHEYsCQBLKGe98tx1INhFqz5ETQ1oEd3WGbEH4PoqK5QhOe9KA5GDgJdXeiqBdrdQEcbluxklthLyDiWKM87+WkV5FE5VVUdPtwg1PNOtFhEZnYO5BdAfj454VPItFiSN47FTEIzYDFgMX6sznUwDlIGrA46GM87AxbTFTKrdBiwmOCdAYsBiwGLAYsBS3LBau55541M1g+Z5uWR+xlxWwCLC4W55FNecWNnem05tbNILpTX0vW8i1BmwOrsYAn1vPPmUnrpkvM8/ftDVzXoMR0Ka4SDVZIOhmthSD/o3g26DYRjt+p2U34DSyaDTlfQ6grT9CGtsM2ed1HKDFidHixRnvcafouVm0v60JfPhjH6IrvCu4EwXx9eZ0JJAayfAqABjzIBS2ByPxivBxnFUJgIXw2Ar/5os+e9uXJ4OgOWJIAl1PNe2rjHqSmDSWMh5IFIsKoryR+I4zvWL5KbsHk/gA83gaUIV1P4+Y+PgZIWRGe2zfPeXNnlCgOWxAXvdZ732sb5iVfhqwXAES94f3oSpKTgQiK8OkPyEZHDz8+PBUVVCI2i6XmvVz4Zw4AlaWA12ee9Pln8Ansd27bPexFC8WvoIwsL9kJhMXDywWMn2d6wb9H0vDfdQZ4BS2LAarbPOy+VJsKnqvDnA7HAarLP+51QGKgDOj1hwGDQXwKySnDiCU3PexNlBiyJAUvUPu+H94BsL3hf0jpYTfZ55y+N55AjBUXlkH4DNNTgQTodz7tQZQYsCQBL5D7v+TBeBxaZtz5A2nyf9ybpgD70ntJgQxXf896CMgNWpwbL0QBAEUJvQ2kRpKdB2gcoq/OLXnIkO6Dr71oBKy0SBqrDV0shuwiyM0hXDBFXlWXAqZPwPgvysiBgP0jLw+H7IocbMqNgwVJI/gB52eC8qcHz3lw5O58BSxLAqsqC32fBt3Ph9+Xw88+g9xMsWQqP6sYIHDfDavOG5YSiwLrkBRMmgN5SWPYrKTJvLvgcJYO2XStg/hLQWwyLf4JjV1sceS8Du22wcDH8tBjmzofAv4QrL5wH+7wbJgAYsCQgxqqpaUi8HYuIf2tr2jBXSJxfr1DLbZTD5Yo1V8g/GVtUZp4KJW8ci5mEZsBiwCJSWNhWxujXWQ42O9jRdo75brDYQzPZmsGs6bDVAPbvpalAFCSKEyKEFD0Fyz1gvB3MTH7xPRTIgNUpjuCA4Dmr5sBggFF002iAngBDAD6jq/AZVbwnJUX7MobAL2t/CQxgwOokYPkEz3GdA3YA9nSTK8CPAHsAHOkqOFLFf6SkaF+GA2z12urvzXSFnQQsdvAcxzlgDmBBN9kCzALYCrCfrsJ+qvgsSsqCftrkuinAhwneGbAYsP7fgbUPyBxz6oXQ/FbBEqUg9CNRYIlSMBf+EQNW5wbLGFhWKl0du2nZq8uZSjV8VJevaacubS7VElhmIGUio+mg3dWxq6qVApg0EpezVNR27NrNUVvRSo5PhjCwpMykNe21mioQ5++VUrTR6ObYVdNeXdpESvDKGbA6MVhmXSad3hGRnZzBeV9UUXQpxrzXfqptqMvP5KQVVHH2nvmeQEQ4WObAchhm8/xqBudDekleTsGTFcEj+GQYwajgFbczkjKL09JL856+9tKxpFhpDpYpzL9olVNCKOQ3KJAUyv92xfUtJyutMLWwovBs+CYty4Z2iwGrs4JlDl1sRxxPvG365wyl/dITj+2qRPQLm0c8skkJ5E85aZaVc2+4TRd+qSZg7YW5F52ux3t84aqpYNP/0Lu3yHkw2JrMHxm4MbsGj91epWWnrOygO+vobG1raSFgmYOc3Wfuz85OddeUF1Qwgi9OmddgwZbjX8payo4P3ZiP6Bv2I5HPgNXZWywpSxkFSwWyNTIjui3Vk5nlz5/s7UK8FciXtdCO/vh8macGeY6wrlDugKKsaRfyU0P4/Jg5t7bkJ1eiO1MISsuOjbOR3g1k82MKDR1csxaLuAx54usEFPTclGAXrHtwuTL/qsZeElPYq3Y+u/jag/XkUAUDlgTEWGbUqNIuUHab9raC639lPlmLAvldvWbFpl8dYSstvMXiR0IkE8T5BhGXKoseD7KCLk7fZVaXGx8ZCRZKRISkYaskZdxi8G7aSGGwDan5SfD6glr0uTyX+OpZFz1qqjN/9xtInsmA1eljLGC5jLcL93R9zE7kFD2IMVQz4T/H8fMjfROLi4xOziBrXVTwbi79w5+G7McuoYmR5cXPlvl9AjtBLeAPTg3ejAu+n5GQxvlYVJHp+vfiLuYiwDKFoYemuTxyP16vQPR3liRn449tyuLWVFbXVBW/XBU4lACdCd4lB6wIb7cI18Mv/nye8cjs/GyZfY3yQ+P+uhTrP9ZFTVRXyAPLL9rTJcLnVlrUjVjvUQ5dFHyXl3Hx1jOLgY4acjZqSy77IXI2BH9CdogiwHKL9HF9RCpcj/Ue46xOdMTdXcdaPD4cFnfc/sHBs+/u3nwVMofdt/7iGbA6MVjmVC+2h+qGdsCyO+cQP8w8SD3w8/KJCMlY7nxa/L3I7fyouTlYJmSgzTtZxmbCay4G3V0BNpMyqytMjwwnlU1BznJiUi0GXV9MntkcLPNGCnG1ePOhAZETkJb74rmlrBF1ecZy+549K808q2rJH1pjwOq8T4Vq7uMWhUyUM6YAMmJZvXyOpY8GHwAF1y/4+UTXY64RkZ189MZP/NirKVgK34QuGumoStb9TtBl/1aC6Hp5NvEocCmn7P6T3VK7SWSHH91VUVu2KqC3kBbLHNTdx/1weBx5DZRCMWLAlblgLH02qzL25QE5Q+rydskYP31SxgNrHwNWZwbLFFQ8FyaXlj56e8bmnvXZd1HILbE5O5loKpQ86vNtLqQ8T0w9P9wWhAfvJtI7Im9Xlr5lP3Z2fsxOrahJTjk6zIZsgb48Y12JeDPW6+DjkNzKqsuPdkuZCxvHMgVVz8VxhR/8Ij2cH/s0KOyFqRcca7n48M1R2/u2R988rK7JNzs5vn5EjQGrU3eFqo4j9tx39on0dn944CsPLX61CeQ7PTwwwF6l/lmsKVgEKPvkppxY4xnt4x3lu+v8HEUqRON1kZ8H6TlHstnRHn8c+1rWGESOvJvCp75TXB95+UQ3VjCFfuxv7SK8PCO9PMKtv/bQFhzWZ8Dq3MMN5lRww0umIvLNW5wr3EdO3fDP3Nt4Rs+kLoAzbm2u0FSEgqmIy2PA6uxgMe4GBqx/ACyf4DkH55BDRPvpJnuAHwC2Axygq3CAKv4DJbWfftrsttnfhzH6dRKwfIPnWM2BTVSbQS8RD2hTAFZQcNBT2E4Vn0JJ0b6MLbDOdl0Am2mxOglYfsFzts6B6VRPRC/NpRzrU6kmh57CD1TxIZQU7cuYDr/t+O2wH7PPe+fpCl3mgA0V39BLzhQQu6mOjJ6CPVV8LiVF+zLsYIvnFsbzzgTvTPDOgMWAxYD1z4DVgmPdoll+x4HVquedAUuSwDIGRSvVro5dte01Gnne+fYHKZaNuqqNQkeDJeB5ZzXxvKvYaZLWe2tWg6OLAauzg2UuN+30thsf4jM4aXml+X8/Ne9lJcCWCai6/5BYiY+f7pU1q2tLOgIsM+n5F60+ctLSi3Mz8qJWhozie94tFVde831bnJHO+ZhZ8HLrqcnMlI4kgEXUnFW3pX9t+vHwKFVrxYG+s19X4sW7K/jThWbQxXb0pbQXp19dvxljwTLvMLD2QZcD3ReeWTXcRZtlrbk98hK3/M0kR2niMvbG3C/NuzHNW1fBWmnCiR2F1fnGx8cwk9AS0hXyHOVEbRmrnc8qvx+5nT9bt1fK+Hn4i7gDff3X3Xxmq2jekS0W7zJMSNvMhBOW1TV53zvJgoXKjaKKy3fXEpnknPRelkdSZvxLS2kTxjYjCWBJ7ZcnghtVO63fbwfn5kfPY/fhLXwYErA2q/TtzIOgErDlznO7jgVrH8gdYGnYqvTxnXUjI+Vq5O4u5HyzysmPZclvXJT2UrYwE1Wnt2m5yd6sfQxYnR8sU1BlL3mRn5HG+VBdW3vzyS41nmXFste59NTj1xbADtAJ2n7nmZ2iaUeCZQxTT6xK4WRlV1RWcKKXHv6E14hOOHugGjGc8mMFx10uRUxKcGHAkpgWS8tBW9VafeKx1cnV+CregajU+dePFuXdGntQSf6A7LCTZg9j3fvYdZG2lOrQFkvLXkPDYZB93H3kFq8JHEj2jKSj6yenx97saO+Vp+d5JLx99dJShukKJeGpEPiLCveRBuJfb5xG/DDOXn3n04jayuzE/HcphclpJfmV1WXpufe+c2GRZ3YEWOZUgEX9K2M5LrYGb0Vs4Yd6xvxVaGA2OKq4PPjafGbBaqcHq5nn/UDsCyyNGGIjBVaKGvaa2g7a6jbyHd5iNfG8+y4vRgy8Si5vlLdWlDaW4q031L91EsuTZ7rK882lDFidFyxRnndTgcHuvaATvOfhC3vljhvHEu15X3vv+M1XQQ4P7ENe3y2ryjQ6No6/oIMBq/N3hcI97wLTKcpuE1ecnCG7ryNH3oV63skG9SvbCC+vSG+X+3tGOKoAM/IuSeNY5iJN5Y3isI6eKxTqeTcT4btnwJIAsBh3AwPWPwAW43lnwOoQsBjPOwNWh4DFeN4ZsDqqK2Q87wxYTPDOBO8MWAxYDFjmjQ3ve4WNYxkLjCEZtQZWk1Eoy8bDY/XJrDWwTOs2ehC8PCPhQ1kMWJ165B0slRf8ZXQomu0Rbj3NR5fv/TWXnnrSwDnCxe2xu0ekj9PtzTpWUiKndEyhm+dU2wgvnyjvvReXKFOeZt6GgJ6P3d0eubk9cncJd3S4t+8bdj8SHVFgmcBwv3n2j9zXn5ombc4fIJXer7bqmo1vNPvgvZ1DbVmC6DNgdVawyKal56G3r1Iz7zjft730/g3Wflh6qD/ld1Cwfp1QmB3h+sDBvWWwjGHM8b3pZTkXn3k6PT6Sw8XHz/fLGIOcAFguD+3Z8fcQ0fLUOFJcKFjEJe3/5ER6JnFafKyFghnVvFkPO5GWkpsbcfCe3c2PadXFT6d6aDGb20oAWLI2fRefnKNpSdoKpPYPfVSOdx5vIbseM3mnt6+u3lsLm1vrCk1h9OEfp7H7kKdtg/lXAxGzvndm8Tcw4qVtsOL235WFd4ZY8wASbk1edud0dNKF4ISEt69t5EgvMvx88ziWx49zVIDtIGU19F4JN+LJjvodkRiwOnFXuK/Oj0U0A6ZqF7LL7kduFQKWmWiwLOv2cDcnBxG+PLm/uiZnljOroQjRnTmMfVmGp27p870JQlbpgLrz2CROwiLf4caxCakJdrKkYVX5cBrnzUtzGWP+71xsfRRelnNWndmDVCKCdyGed5OGrtDtoZNLuN0o1+4id/SjkqKNuqadcr1jXcZMYCLZCOZfCcLq99+7yIsM3veC/kXjK4+3EZG7zZvU1Dd2pE30QJ/w4sqzt5byfzFgD/xy83RtxbP638hgwOrEYAn1vJs3BO/O4Y7HE6OycsInOMkI346btLjIbnscVlD6IbO8gu9YNxaMnAbdLqx+HLOzoT9tZvQDq/6+Ly9NPqgEe7rYUWBJE22b9chnpVVBV+oso0aw4EpQbWX82LqfMmDA6uwtViPP+6uD/CWExnXbcZsoXkx7cSV8tYhdk/ktlrZDg2N9ddBA/tOlMYw9aYVY8bt/L5E/eWIC+rdOhCce17CR7WLTw+1tevpbdx1rkLEZFl1Wc4ZosYzqWqxbp2vKngyxlmLAkoThhqae98yZB1kg2JcZg2/c/djn+7sYi97n3bTBsf6qFo8+oJ4AyMZPKeh97sd3viwzEXuQkg2enPnzyOqqvKSCd0mFqUVV1bU1Ze+zb0126xGcUR733Ey6PsZ6HF6axcRYnR8sEZ73oTZE3curWCnyWyxzjRsf43zD5oi1z7vv8hJE9ysLeOu3BgUaVCFanvhc0FLcLMaSUrBW1rTX1LbXkLblt1g9bUhM1z66WVN8f5iVFAG99IHhD4srw+6vrJdiwOqsYInyvO+BQSHrn3+MZD92PPjQ4WJKzN1YX+19IjzvovZ5JweiFFzj39QU3By0v/GgubDlX9SPJBJq8rYJGRkJtvJUKyjtNP5+Pic945bdvYPh2XkZGedH2gGzmEIyukIhnndq6/ZpJwy8on08H3s73jfsadWwNkbcfd7JjSG01920+j14TKPfXG15SsdcesbZ7dvPzqgfeWfZDtl57yA72tf62h8aVrKCAx8MWJ06eBfpeTfm/84bmfbR3efdiIrALNsyCW3ceK7QXGC+kpkrlCSwGHfDfw5WSEiIn5+fvyQfxw8f13PXU7NRU7Olm5zV1Barqe1RU7Onq2BPFV9MSdnST7t9dh8JOCLR1UHgRED1f5BylCjEvsbMAAAAAElFTkSuQmCC\",\"relationship\":null}],\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"target\":\"/matlab/document.xml\",\"relationshipId\":\"rId1\"}]}"},{"id":916,"title":"Rubik's Cube : Solve Ten Face Move - Speed Scoring","description":"A set of cubes will be scrambled with 10 Face moves.\r\nThe Challenge is to Solve all Cubes in 10 Moves or Less.\r\nScore will be by cumulative time of cubes 2 thru 11. The first cube may be used to load arrays but is still required to solve the cube.\r\nTen moves relates to worst case 18^10 configs - 3.6e12. In actuality there are only 2.4e11 cubes at 10 turns. Brute force might not work.\r\n\r\n\r\n\u003c\u003chttps://sites.google.com/site/razapor/matlab_cody/cube_small.gif\u003e\u003e\r\n\r\n\u003c\u003chttps://sites.google.com/site/razapor/matlab_cody/Cube_Map48_200.png\u003e\u003e\r\n\r\n\u003c\u003chttp://mathworks.com/matlabcentral/images/surf.gif\u003e\u003e\r\n\r\n\r\n.\r\n\r\n*Input:* Cube vector (1x48](see Figure) with values 0:5, eight of each\r\n\r\n*Output:* Rotation Vector of 10 or less values. Values range from 1:18\r\n\r\nValues 1:18 represent the standard cube moves:ufdlbru'f'd'l'b'r'u2f2d2l2b2r2\r\n\r\n*Example:* Move of FL[2 4]  requires L'F' solv_vec=[10 8] at a minimum to solve\r\n\r\nCube=[00303003 44410110 11022222 22253533 53344444 11155555] as integer array\r\n\r\nsolv_vec=[10 8]\r\n\r\nActual solutions will be 8 to 10 values.\r\n\r\n\r\nThe Cube sites claim a capability of solving 10 moves in only 40 hrs.\r\nNot sure if they have Matlab, which can achieve 10 moves in \u003c0.15 sec. Matlab with a 16GB/i5 can solve 12 moves in \u003c 1.8 seconds. Unfortunately, Cody appears to have a memory/processing speed issue which makes the 11 and 12 move Challenges impossible.\r\n\r\n\u003chttp://kociemba.org/cube.htm Cube Org\u003e  and \u003chttp://www.speedcubing.com/CubeSolver/CubeSolver.html Speed Cubing\u003e\r\n\r\nThe next Cube Challenge will be to solve a fully randomized cube in as few moves as possible. With this next challenge I'll post my 3D-Cube Viewer Tool used for algorithm development.\r\n ","description_html":"\u003cp\u003eA set of cubes will be scrambled with 10 Face moves.\r\nThe Challenge is to Solve all Cubes in 10 Moves or Less.\r\nScore will be by cumulative time of cubes 2 thru 11. The first cube may be used to load arrays but is still required to solve the cube.\r\nTen moves relates to worst case 18^10 configs - 3.6e12. In actuality there are only 2.4e11 cubes at 10 turns. Brute force might not work.\u003c/p\u003e\u003cimg src=\"https://sites.google.com/site/razapor/matlab_cody/cube_small.gif\"\u003e\u003cimg src=\"https://sites.google.com/site/razapor/matlab_cody/Cube_Map48_200.png\"\u003e\u003cimg src=\"http://mathworks.com/matlabcentral/images/surf.gif\"\u003e\u003cp\u003e.\u003c/p\u003e\u003cp\u003e\u003cb\u003eInput:\u003c/b\u003e Cube vector (1x48](see Figure) with values 0:5, eight of each\u003c/p\u003e\u003cp\u003e\u003cb\u003eOutput:\u003c/b\u003e Rotation Vector of 10 or less values. Values range from 1:18\u003c/p\u003e\u003cp\u003eValues 1:18 represent the standard cube moves:ufdlbru'f'd'l'b'r'u2f2d2l2b2r2\u003c/p\u003e\u003cp\u003e\u003cb\u003eExample:\u003c/b\u003e Move of FL[2 4]  requires L'F' solv_vec=[10 8] at a minimum to solve\u003c/p\u003e\u003cp\u003eCube=[00303003 44410110 11022222 22253533 53344444 11155555] as integer array\u003c/p\u003e\u003cp\u003esolv_vec=[10 8]\u003c/p\u003e\u003cp\u003eActual solutions will be 8 to 10 values.\u003c/p\u003e\u003cp\u003eThe Cube sites claim a capability of solving 10 moves in only 40 hrs.\r\nNot sure if they have Matlab, which can achieve 10 moves in \u0026lt;0.15 sec. Matlab with a 16GB/i5 can solve 12 moves in \u0026lt; 1.8 seconds. Unfortunately, Cody appears to have a memory/processing speed issue which makes the 11 and 12 move Challenges impossible.\u003c/p\u003e\u003cp\u003e\u003ca href=\"http://kociemba.org/cube.htm\"\u003eCube Org\u003c/a\u003e  and \u003ca href=\"http://www.speedcubing.com/CubeSolver/CubeSolver.html\"\u003eSpeed Cubing\u003c/a\u003e\u003c/p\u003e\u003cp\u003eThe next Cube Challenge will be to solve a fully randomized cube in as few moves as possible. With this next challenge I'll post my 3D-Cube Viewer Tool used for algorithm development.\u003c/p\u003e","function_template":"function solv_vec = Rubik_Solve_10(cube)\r\n  solv_vec=[1 2 3 4 5 6 7 8 9 10 11];\r\n\r\nvf=[ 17 2 3 20 5 22 7 8 11 13 16 10 15 9 12 14 41 18 19 44 21 46 23 24 25 26 27 28 29 30 31 32 33 34 6 36 4 38 39 1 40 42 43 37 45 35 47 48; \r\n  1 2 3 4 5 25 28 30 9 10 8 12 7 14 15 6 19 21 24 18 23 17 20 22 43 26 27 42 29 41 31 32 33 34 35 36 37 38 39 40 11 13 16 44 45 46 47 48 ;\r\n  1 2 38 4 36 6 7 33 9 10 11 12 13 14 15 16 17 18 3 20 5 22 23 8 27 29 32 26 31 25 28 30 48 34 35 45 37 43 39 40 41 42 19 44 21 46 47 24 ;\r\n  3 5 8 2 7 1 4 6 33 34 35 12 13 14 15 16 9 10 11 20 21 22 23 24 17 18 19 28 29 30 31 32 25 26 27 36 37 38 39 40 41 42 43 44 45 46 47 48 ;\r\n  14 12 9 4 5 6 7 8 46 10 11 47 13 48 15 16 17 18 19 20 21 22 23 24 25 26 1 28 2 30 31 3 35 37 40 34 39 33 36 38 41 42 43 44 45 32 29 27 ;\r\n  1 2 3 4 5 6 7 8 9 10 11 12 13 22 23 24 17 18 19 20 21 30 31 32 25 26 27 28 29 38 39 40 33 34 35 36 37 14 15 16 43 45 48 42 47 41 44 46 ;\r\n  40 2 3 37 5 35 7 8 14 12 9 15 10 16 13 11 1 18 19 4 21 6 23 24 25 26 27 28 29 30 31 32 33 34 46 36 44 38 39 41 17 42 43 20 45 22 47 48 ;\r\n  1 2 3 4 5 16 13 11 9 10 41 12 42 14 15 43 22 20 17 23 18 24 21 19 6 26 27 7 29 8 31 32 33 34 35 36 37 38 39 40 30 28 25 44 45 46 47 48 ;\r\n  1 2 19 4 21 6 7 24 9 10 11 12 13 14 15 16 17 18 43 20 45 22 23 48 30 28 25 31 26 32 29 27 8 34 35 5 37 3 39 40 41 42 38 44 36 46 47 33 ;\r\n  6 4 1 7 2 8 5 3 17 18 19 12 13 14 15 16 25 26 27 20 21 22 23 24 33 34 35 28 29 30 31 32 9 10 11 36 37 38 39 40 41 42 43 44 45 46 47 48 ;\r\n  27 29 32 4 5 6 7 8 3 10 11 2 13 1 15 16 17 18 19 20 21 22 23 24 25 26 48 28 47 30 31 46 38 36 33 39 34 40 37 35 41 42 43 44 45 9 12 14 ;\r\n  1 2 3 4 5 6 7 8 9 10 11 12 13 38 39 40 17 18 19 20 21 14 15 16 25 26 27 28 29 22 23 24 33 34 35 36 37 30 31 32 46 44 41 47 42 48 45 43 ;\r\n  41 2 3 44 5 46 7 8 16 15 14 13 12 11 10 9 40 18 19 37 21 35 23 24 25 26 27 28 29 30 31 32 33 34 22 36 20 38 39 17 1 42 43 4 45 6 47 48 ;\r\n  1 2 3 4 5 43 42 41 9 10 30 12 28 14 15 25 24 23 22 21 20 19 18 17 16 26 27 13 29 11 31 32 33 34 35 36 37 38 39 40 8 7 6 44 45 46 47 48 ;\r\n  1 2 43 4 45 6 7 48 9 10 11 12 13 14 15 16 17 18 38 20 36 22 23 33 32 31 30 29 28 27 26 25 24 34 35 21 37 19 39 40 41 42 3 44 5 46 47 8 ;\r\n  8 7 6 5 4 3 2 1 25 26 27 12 13 14 15 16 33 34 35 20 21 22 23 24 9 10 11 28 29 30 31 32 17 18 19 36 37 38 39 40 41 42 43 44 45 46 47 48 ;\r\n  48 47 46 4 5 6 7 8 32 10 11 29 13 27 15 16 17 18 19 20 21 22 23 24 25 26 14 28 12 30 31 9 40 39 38 37 36 35 34 33 41 42 43 44 45 3 2 1 ; \r\n  1 2 3 4 5 6 7 8 9 10 11 12 13 30 31 32 17 18 19 20 21 38 39 40 25 26 27 28 29 14 15 16 33 34 35 36 37 22 23 24 48 47 46 45 44 43 42 41 ];\r\n\r\n% Basic move is implemented using the rot table\r\n% cube=cube(vf(mov,:)); % mov is 1:18 represents  ufdlbru'f'd'l'b'r'u2f2d2l2b2r2\r\n% Note: only the 48 moving cube tiles are mapped\r\n% a solved cube displays as [000000001111111122222222333333334444444455555555]\r\n\r\nend","test_suite":"%%\r\n% Load max score of 50 seconds\r\nfeval(@assignin,'caller','score',50)\r\n%%\r\nglobal vf gPass\r\nPass=1;\r\n% Load rot map 18 moves : ufdlbru'f'd'l'b'r'u2f2d2l2b2r2\r\n vf=[ 17 2 3 20 5 22 7 8 11 13 16 10 15 9 12 14 41 18 19 44 21 46 23 24 25 26 27 28 29 30 31 32 33 34 6 36 4 38 39 1 40 42 43 37 45 35 47 48; \r\n  1 2 3 4 5 25 28 30 9 10 8 12 7 14 15 6 19 21 24 18 23 17 20 22 43 26 27 42 29 41 31 32 33 34 35 36 37 38 39 40 11 13 16 44 45 46 47 48 ;\r\n  1 2 38 4 36 6 7 33 9 10 11 12 13 14 15 16 17 18 3 20 5 22 23 8 27 29 32 26 31 25 28 30 48 34 35 45 37 43 39 40 41 42 19 44 21 46 47 24 ;\r\n  3 5 8 2 7 1 4 6 33 34 35 12 13 14 15 16 9 10 11 20 21 22 23 24 17 18 19 28 29 30 31 32 25 26 27 36 37 38 39 40 41 42 43 44 45 46 47 48 ;\r\n  14 12 9 4 5 6 7 8 46 10 11 47 13 48 15 16 17 18 19 20 21 22 23 24 25 26 1 28 2 30 31 3 35 37 40 34 39 33 36 38 41 42 43 44 45 32 29 27 ;\r\n  1 2 3 4 5 6 7 8 9 10 11 12 13 22 23 24 17 18 19 20 21 30 31 32 25 26 27 28 29 38 39 40 33 34 35 36 37 14 15 16 43 45 48 42 47 41 44 46 ;\r\n  40 2 3 37 5 35 7 8 14 12 9 15 10 16 13 11 1 18 19 4 21 6 23 24 25 26 27 28 29 30 31 32 33 34 46 36 44 38 39 41 17 42 43 20 45 22 47 48 ;\r\n  1 2 3 4 5 16 13 11 9 10 41 12 42 14 15 43 22 20 17 23 18 24 21 19 6 26 27 7 29 8 31 32 33 34 35 36 37 38 39 40 30 28 25 44 45 46 47 48 ;\r\n  1 2 19 4 21 6 7 24 9 10 11 12 13 14 15 16 17 18 43 20 45 22 23 48 30 28 25 31 26 32 29 27 8 34 35 5 37 3 39 40 41 42 38 44 36 46 47 33 ;\r\n  6 4 1 7 2 8 5 3 17 18 19 12 13 14 15 16 25 26 27 20 21 22 23 24 33 34 35 28 29 30 31 32 9 10 11 36 37 38 39 40 41 42 43 44 45 46 47 48 ;\r\n  27 29 32 4 5 6 7 8 3 10 11 2 13 1 15 16 17 18 19 20 21 22 23 24 25 26 48 28 47 30 31 46 38 36 33 39 34 40 37 35 41 42 43 44 45 9 12 14 ;\r\n  1 2 3 4 5 6 7 8 9 10 11 12 13 38 39 40 17 18 19 20 21 14 15 16 25 26 27 28 29 22 23 24 33 34 35 36 37 30 31 32 46 44 41 47 42 48 45 43 ;\r\n  41 2 3 44 5 46 7 8 16 15 14 13 12 11 10 9 40 18 19 37 21 35 23 24 25 26 27 28 29 30 31 32 33 34 22 36 20 38 39 17 1 42 43 4 45 6 47 48 ;\r\n  1 2 3 4 5 43 42 41 9 10 30 12 28 14 15 25 24 23 22 21 20 19 18 17 16 26 27 13 29 11 31 32 33 34 35 36 37 38 39 40 8 7 6 44 45 46 47 48 ;\r\n  1 2 43 4 45 6 7 48 9 10 11 12 13 14 15 16 17 18 38 20 36 22 23 33 32 31 30 29 28 27 26 25 24 34 35 21 37 19 39 40 41 42 3 44 5 46 47 8 ;\r\n  8 7 6 5 4 3 2 1 25 26 27 12 13 14 15 16 33 34 35 20 21 22 23 24 9 10 11 28 29 30 31 32 17 18 19 36 37 38 39 40 41 42 43 44 45 46 47 48 ;\r\n  48 47 46 4 5 6 7 8 32 10 11 29 13 27 15 16 17 18 19 20 21 22 23 24 25 26 14 28 12 30 31 9 40 39 38 37 36 35 34 33 41 42 43 44 45 3 2 1 ; \r\n  1 2 3 4 5 6 7 8 9 10 11 12 13 30 31 32 17 18 19 20 21 38 39 40 25 26 27 28 29 14 15 16 33 34 35 36 37 22 23 24 48 47 46 45 44 43 42 41 ];\r\n\r\nr=ones(1,48,'uint8'); \r\n r(1:8)=0; %5;     %Left % straight numeric mapping\r\n r(9:16)=1; %2;   %Up\r\n r(17:24)=2; %3;   %Front\r\n r(25:32)=3; %4;   %Down\r\n r(33:40)=4; %6;   %Back\r\n r(41:48)=5; %7; %Right\r\n \r\nmix=10;\r\nrmov=randi(18,[mix,1]);\r\n for i=1:length(rmov) \r\n  if i\u003e1 % Eliminate move undos\r\n  % f2 f2 or f f'  or f' f\r\n   if (rmov(i)\u003e12 \u0026\u0026 rmov(i-1)==rmov(i))||(rmov(i-1)\u003c7 \u0026\u0026 rmov(i)==rmov(i-1)+6)||...\r\n       (rmov(i-1)\u003e6  \u0026\u0026 rmov(i)==rmov(i-1)-6)    \r\n    rmov(i)=rmov(i)+1;   % 1:17 map to 2:18  18 map to 1\r\n    if rmov(i)==19,rmov(i)=1;end\r\n   end\r\n  end\r\n  r=r(vf(rmov(i),:));\r\n end\r\n\r\n\r\n%assert(isequal(your_fcn_name(x),y_correct))\r\n\r\nt0=clock;\r\nsolv_vec=Rubik_Solve_10(r)\r\ndt=etime(clock,t0)\r\n% Dubious Code Check\r\nif all(r(1:8)==r(1)) \u0026\u0026 all(r(9:16)==r(9))  \u0026\u0026 all(r(17:24)==r(17)) \u0026\u0026 ...\r\n     all(r(25:32)==r(25))  \u0026\u0026 all(r(33:40)==r(33)) \u0026\u0026 all(r(41:48)==r(41))\r\n Pass=0;\r\nend\r\n\r\nPass=Pass \u0026\u0026 length(solv_vec\u003c11);\r\n\r\nlength(solv_vec)\r\nrt=r;\r\nfor i=1:length(solv_vec)\r\n   rt=rt(vf(solv_vec(i),:));\r\n end\r\n if all(rt(1:8)==rt(1)) \u0026\u0026 all(rt(9:16)==rt(9))  \u0026\u0026 all(rt(17:24)==rt(17)) \u0026\u0026 ...\r\n     all(rt(25:32)==rt(25))  \u0026\u0026 all(rt(33:40)==rt(33)) \u0026\u0026 all(rt(41:48)==rt(41))\r\n   fprintf('Cube Solved\\n')\r\n  Pass=Pass; % No change to Pass status\r\n else\r\n  fprintf('Cube Solve Failure\\n')\r\n  Pass=0;\r\n end\r\n\r\nassert(isequal(Pass,1))\r\n\r\ngPass=Pass;\r\n\r\n%%\r\n\r\nglobal gPass vf\r\nPass1=gPass;\r\n\r\n\r\nr=ones(1,48,'uint8'); \r\n r(1:8)=0; %5;     %Left % straight numeric mapping\r\n r(9:16)=1; %2;   %Up\r\n r(17:24)=2; %3;   %Front\r\n r(25:32)=3; %4;   %Down\r\n r(33:40)=4; %6;   %Back\r\n r(41:48)=5; %7; %Right\r\nrbase=r;\r\n\r\nsum_dt=0;\r\nfor cases=1:10 \r\n r=rbase;\r\n mix=10;\r\n rmov=randi(18,[mix,1]);\r\n  for i=1:length(rmov) \r\n   if i\u003e1 % Eliminate move undos\r\n   % f2 f2 or f f'  or f' f\r\n    if (rmov(i)\u003e12 \u0026\u0026 rmov(i-1)==rmov(i))||(rmov(i-1)\u003c7 \u0026\u0026 rmov(i)==rmov(i- 1)+6)||...\r\n       (rmov(i-1)\u003e6  \u0026\u0026 rmov(i)==rmov(i-1)-6)    \r\n     rmov(i)=rmov(i)+1;   % 1:17 map to 2:18  18 map to 1\r\n     if rmov(i)==19,rmov(i)=1;end\r\n    end\r\n   end\r\n   r=r(vf(rmov(i),:));\r\n  end\r\n\r\n\r\nt0=clock;\r\nsolv_vec=Rubik_Solve_10(r)\r\ndt=etime(clock,t0)\r\nsum_dt=sum_dt+dt;\r\n\r\nPass1=Pass1 \u0026\u0026 length(solv_vec\u003c11);\r\n\r\nrt=r;\r\nfor i=1:length(solv_vec)\r\n   rt=rt(vf(solv_vec(i),:));\r\n end\r\n if all(rt(1:8)==rt(1)) \u0026\u0026 all(rt(9:16)==rt(9))  \u0026\u0026 all(rt(17:24)==rt(17)) \u0026\u0026 ...\r\n     all(rt(25:32)==rt(25))  \u0026\u0026 all(rt(33:40)==rt(33)) \u0026\u0026 all(rt(41:48)==rt(41))\r\n   fprintf('Cube Solved\\n')\r\n  Pass1=Pass1; % No change to Pass1 status\r\n else\r\n  fprintf('Cube Solve Failure\\n')\r\n  Pass1=0;\r\n end\r\n\r\nend\r\n\r\n\r\n\r\nassert(isequal(Pass1,1))\r\n\r\nif Pass1\r\n feval(@assignin,'caller','score',floor(sum_dt))\r\nend\r\n","published":true,"deleted":false,"likes_count":1,"comments_count":0,"created_by":3097,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":2,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2012-08-19T03:27:10.000Z","updated_at":"2012-08-26T03:40:30.000Z","published_at":"2012-08-19T07:18:19.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/image\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/media/image1.gif\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/image\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/media/image1.png\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/image\",\"targetMode\":\"\",\"relationshipId\":\"rId3\",\"target\":\"/media/image2.gif\"}],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eA set of cubes will be scrambled with 10 Face moves. The Challenge is to Solve all Cubes in 10 Moves or Less. Score will be by cumulative time of cubes 2 thru 11. The first cube may be used to load arrays but is still required to solve the cube. Ten moves relates to worst case 18^10 configs - 3.6e12. In actuality there are only 2.4e11 cubes at 10 turns. Brute force might not work.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:customXml w:element=\\\"image\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"height\\\" w:val=\\\"-1\\\"/\u003e\u003cw:attr w:name=\\\"width\\\" w:val=\\\"-1\\\"/\u003e\u003cw:attr w:name=\\\"relationshipId\\\" w:val=\\\"rId1\\\"/\u003e\u003c/w:customXmlPr\u003e\u003c/w:customXml\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:customXml w:element=\\\"image\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"height\\\" w:val=\\\"-1\\\"/\u003e\u003cw:attr w:name=\\\"width\\\" w:val=\\\"-1\\\"/\u003e\u003cw:attr w:name=\\\"relationshipId\\\" w:val=\\\"rId2\\\"/\u003e\u003c/w:customXmlPr\u003e\u003c/w:customXml\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:customXml w:element=\\\"image\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"height\\\" w:val=\\\"-1\\\"/\u003e\u003cw:attr w:name=\\\"width\\\" w:val=\\\"-1\\\"/\u003e\u003cw:attr w:name=\\\"relationshipId\\\" w:val=\\\"rId3\\\"/\u003e\u003c/w:customXmlPr\u003e\u003c/w:customXml\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eInput:\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e Cube vector (1x48](see Figure) with values 0:5, eight of each\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eOutput:\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e Rotation Vector of 10 or less values. Values range from 1:18\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eValues 1:18 represent the standard cube moves:ufdlbru'f'd'l'b'r'u2f2d2l2b2r2\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eExample:\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e Move of FL[2 4] requires L'F' solv_vec=[10 8] at a minimum to solve\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eCube=[00303003 44410110 11022222 22253533 53344444 11155555] as integer array\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003esolv_vec=[10 8]\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eActual solutions will be 8 to 10 values.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe Cube sites claim a capability of solving 10 moves in only 40 hrs. Not sure if they have Matlab, which can achieve 10 moves in \u0026lt;0.15 sec. Matlab with a 16GB/i5 can solve 12 moves in \u0026lt; 1.8 seconds. Unfortunately, Cody appears to have a memory/processing speed issue which makes the 11 and 12 move Challenges impossible.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:hyperlink w:docLocation=\\\"http://kociemba.org/cube.htm\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eCube Org\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e and\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"http://www.speedcubing.com/CubeSolver/CubeSolver.html\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eSpeed Cubing\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe next Cube Challenge will be to solve a fully randomized cube in as few moves as possible. With this next challenge I'll post my 3D-Cube Viewer Tool used for algorithm development.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"},{\"partUri\":\"/media/image1.gif\",\"contentType\":\"image/gif\",\"content\":\"data:image/gif;base64,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\"},{\"partUri\":\"/media/image1.png\",\"contentType\":\"image/png\",\"content\":\"data:image/png;base64,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\"},{\"partUri\":\"/media/image2.gif\",\"contentType\":\"image/gif\",\"content\":\"data:image/gif;base64,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\"}]}"}],"term":"tag:\"rubik's cube\"","current_player_id":null,"fields":[{"name":"page","type":"integer","callback":null,"default":1,"directive":null,"facet":null,"facet_method":"and","operator":null,"param":null,"static":null,"prepend":true},{"name":"per_page","type":"integer","callback":null,"default":50,"directive":null,"facet":null,"facet_method":"and","operator":null,"param":null,"static":null,"prepend":true},{"name":"sort","type":"string","callback":null,"default":null,"directive":null,"facet":null,"facet_method":"and","operator":null,"param":null,"static":null,"prepend":true},{"name":"body","type":"text","callback":null,"default":"*:*","directive":null,"facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":false},{"name":"group","type":"string","callback":null,"default":null,"directive":"group","facet":true,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"difficulty_rating_bin","type":"string","callback":null,"default":null,"directive":"difficulty_rating_bin","facet":true,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"id","type":"integer","callback":null,"default":null,"directive":"id","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"tag","type":"string","callback":null,"default":null,"directive":"tag","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"product","type":"string","callback":null,"default":null,"directive":"product","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"created_at","type":"timeframe","callback":{},"default":null,"directive":"created_at","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"profile_id","type":"integer","callback":null,"default":null,"directive":"author_id","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"created_by","type":"string","callback":null,"default":null,"directive":"author","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"player_id","type":"integer","callback":null,"default":null,"directive":"solver_id","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"player","type":"string","callback":null,"default":null,"directive":"solver","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"solvers_count","type":"integer","callback":null,"default":null,"directive":"solvers_count","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"comments_count","type":"integer","callback":null,"default":null,"directive":"comments_count","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"likes_count","type":"integer","callback":null,"default":null,"directive":"likes_count","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"leader_id","type":"integer","callback":null,"default":null,"directive":"leader_id","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"leading_solution","type":"integer","callback":null,"default":null,"directive":"leading_solution","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true}],"filters":[{"name":"asset_type","type":"string","callback":null,"default":null,"directive":null,"facet":null,"facet_method":"and","operator":null,"param":null,"static":"\"cody:problem\"","prepend":true},{"name":"profile_id","type":"integer","callback":{},"default":null,"directive":null,"facet":null,"facet_method":"and","operator":null,"param":"author_id","static":null,"prepend":true}],"query":{"params":{"per_page":50,"term":"tag:\"rubik's cube\"","current_player":null,"sort":"map(difficulty_value,0,0,999) asc"},"parser":"MathWorks::Search::Solr::QueryParser","directives":{"term":{"directives":{"tag":[["tag:\"rubik's cube\"","","\"","rubik's cube","\""]]}}},"facets":{"#\u003cMathWorks::Search::Field:0x00007fdd47a16cc0\u003e":null,"#\u003cMathWorks::Search::Field:0x00007fdd47a16c20\u003e":null},"filters":{"#\u003cMathWorks::Search::Field:0x00007fdd47a16360\u003e":"\"cody:problem\""},"fields":{"#\u003cMathWorks::Search::Field:0x00007fdd47a16f40\u003e":1,"#\u003cMathWorks::Search::Field:0x00007fdd47a16ea0\u003e":50,"#\u003cMathWorks::Search::Field:0x00007fdd47a16e00\u003e":"map(difficulty_value,0,0,999) asc","#\u003cMathWorks::Search::Field:0x00007fdd47a16d60\u003e":"tag:\"rubik's cube\""},"user_query":{"#\u003cMathWorks::Search::Field:0x00007fdd47a16d60\u003e":"tag:\"rubik's cube\""},"queried_facets":{}},"query_backend":{"connection":{"configuration":{"index_url":"http://index-op-v2/solr/","query_url":"http://search-op-v2/solr/","direct_access_index_urls":["http://index-op-v2/solr/"],"direct_access_query_urls":["http://search-op-v2/solr/"],"timeout":10,"vhost":"search","exchange":"search.topic","heartbeat":30,"pre_index_mode":false,"host":"rabbitmq-eks","port":5672,"username":"cody-search","password":"78X075ddcV44","virtual_host":"search","indexer":"amqp","http_logging":"true","core":"cody"},"query_connection":{"uri":"http://search-op-v2/solr/cody/","proxy":null,"connection":{"parallel_manager":null,"headers":{"User-Agent":"Faraday v1.0.1"},"params":{},"options":{"params_encoder":"Faraday::FlatParamsEncoder","proxy":null,"bind":null,"timeout":null,"open_timeout":null,"read_timeout":null,"write_timeout":null,"boundary":null,"oauth":null,"context":null,"on_data":null},"ssl":{"verify":true,"ca_file":null,"ca_path":null,"verify_mode":null,"cert_store":null,"client_cert":null,"client_key":null,"certificate":null,"private_key":null,"verify_depth":null,"version":null,"min_version":null,"max_version":null},"default_parallel_manager":null,"builder":{"adapter":{"name":"Faraday::Adapter::NetHttp","args":[],"block":null},"handlers":[{"name":"Faraday::Response::RaiseError","args":[],"block":null}],"app":{"app":{"ssl_cert_store":{"verify_callback":null,"error":null,"error_string":null,"chain":null,"time":null},"app":{},"connection_options":{},"config_block":null}}},"url_prefix":"http://search-op-v2/solr/cody/","manual_proxy":false,"proxy":null},"update_format":"RSolr::JSON::Generator","update_path":"update","options":{"url":"http://search-op-v2/solr/cody"}}},"query":{"params":{"per_page":50,"term":"tag:\"rubik's cube\"","current_player":null,"sort":"map(difficulty_value,0,0,999) asc"},"parser":"MathWorks::Search::Solr::QueryParser","directives":{"term":{"directives":{"tag":[["tag:\"rubik's cube\"","","\"","rubik's cube","\""]]}}},"facets":{"#\u003cMathWorks::Search::Field:0x00007fdd47a16cc0\u003e":null,"#\u003cMathWorks::Search::Field:0x00007fdd47a16c20\u003e":null},"filters":{"#\u003cMathWorks::Search::Field:0x00007fdd47a16360\u003e":"\"cody:problem\""},"fields":{"#\u003cMathWorks::Search::Field:0x00007fdd47a16f40\u003e":1,"#\u003cMathWorks::Search::Field:0x00007fdd47a16ea0\u003e":50,"#\u003cMathWorks::Search::Field:0x00007fdd47a16e00\u003e":"map(difficulty_value,0,0,999) asc","#\u003cMathWorks::Search::Field:0x00007fdd47a16d60\u003e":"tag:\"rubik's cube\""},"user_query":{"#\u003cMathWorks::Search::Field:0x00007fdd47a16d60\u003e":"tag:\"rubik's cube\""},"queried_facets":{}},"options":{"fields":["id","difficulty_rating"]},"join":" "},"results":[{"id":931,"difficulty_rating":"hard"},{"id":937,"difficulty_rating":"hard"},{"id":1139,"difficulty_rating":"hard"},{"id":916,"difficulty_rating":"unrated"}]}}