{"group":{"id":1,"name":"Community","lockable":false,"created_at":"2012-01-18T18:02:15.000Z","updated_at":"2026-04-06T14:01:22.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-06T00: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":950,"title":"Cody Matlab Version","description":"What is the current Cody Matlab Release? \r\n\r\n*Output:* string\r\n\r\n\r\n*Examples:*\r\n\r\n\r\n'(R2012a)' or 'R2012a'\r\n\r\n\r\nHint: We have moved forward\r\n\r\nPosted 9/16/12","description_html":"\u003cp\u003eWhat is the current Cody Matlab Release?\u003c/p\u003e\u003cp\u003e\u003cb\u003eOutput:\u003c/b\u003e string\u003c/p\u003e\u003cp\u003e\u003cb\u003eExamples:\u003c/b\u003e\u003c/p\u003e\u003cp\u003e'(R2012a)' or 'R2012a'\u003c/p\u003e\u003cp\u003eHint: We have moved forward\u003c/p\u003e\u003cp\u003ePosted 9/16/12\u003c/p\u003e","function_template":"function str = Cody_version\r\n  str='(R2012a)';\r\nend","test_suite":"%%\r\n% 09/21/2012\r\nstr=Cody_version;\r\nlatest=ver;\r\nRelease=latest(1,1).Release;\r\nRelease2= regexprep(Release,'[()]','');\r\nPass= strcmp(str,Release) || strcmp(str,Release2);\r\nassert(isequal(Pass,1))\r\n","published":true,"deleted":false,"likes_count":0,"comments_count":0,"created_by":3097,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":175,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2012-09-16T23:58:44.000Z","updated_at":"2026-02-05T16:40:06.000Z","published_at":"2012-09-17T00:50:33.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\":[],\"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\u003eWhat is the current Cody Matlab Release?\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 string\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\u003eExamples:\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\u003e'(R2012a)' or 'R2012a'\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\u003eHint: We have moved forward\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\u003ePosted 9/16/12\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\"}]}"},{"id":955,"title":"ismember: Enhanced Time Performance for 'rows'  - Speed Scoring (90% savings)","description":"The Challenge is to perform very fast the 'ismember' function for a long and wide array.\r\n\r\nThe data is small integer representing data permutations of items like DNA and Rubik's cube faces and orientations.\r\n\r\n*Input:* Array of uint8 of dimensions (m, 16) with values 0:3\r\n\r\n*Output:* Array Equivalent to ismember(A,B,'rows')\r\n\r\n*Hints:*\r\n\r\n1) Columns can be merged to form a reduced number of columns\r\n2) Unique has the option to provide an Array and a sorting Index","description_html":"\u003cp\u003eThe Challenge is to perform very fast the 'ismember' function for a long and wide array.\u003c/p\u003e\u003cp\u003eThe data is small integer representing data permutations of items like DNA and Rubik's cube faces and orientations.\u003c/p\u003e\u003cp\u003e\u003cb\u003eInput:\u003c/b\u003e Array of uint8 of dimensions (m, 16) with values 0:3\u003c/p\u003e\u003cp\u003e\u003cb\u003eOutput:\u003c/b\u003e Array Equivalent to ismember(A,B,'rows')\u003c/p\u003e\u003cp\u003e\u003cb\u003eHints:\u003c/b\u003e\u003c/p\u003e\u003cp\u003e1) Columns can be merged to form a reduced number of columns\r\n2) Unique has the option to provide an Array and a sorting Index\u003c/p\u003e","function_template":"function idx = ismember_fast_rows(a,b)\r\n idx=ismember(a,b,'rows');\r\nend","test_suite":"%%\r\nfeval(@assignin,'caller','score',40000);\r\n%%\r\n% Functionality Tests\r\nL=128;\r\na=randi(4,L,16,'uint8')-1;\r\nb=randi(4,L,16,'uint8')-1;\r\nassert(isequal(ismember(a,b,'rows'),ismember_fast_rows(a,b)))\r\n\r\nb=a;\r\nassert(isequal(ismember(a,b,'rows'),ismember_fast_rows(a,b)))\r\n\r\nL=256;\r\na=randi(4,L,16,'uint8')-1;\r\nb=randi(4,L,16,'uint8')-1;\r\na(16:32,:)=b(32:48,:);\r\nassert(isequal(ismember(a,b,'rows'),ismember_fast_rows(a,b)))\r\n\r\n%%\r\nL=4000000;  % ismember 40    fast 5.2\r\n% 34 sec 4M\r\ntic\r\na=randi(4,L,16,'uint8')-1;\r\nb=randi(4,L,16,'uint8')-1;\r\ntoc\r\n\r\n\r\nta=clock;\r\nidx = ismember_fast_rows(a,b);\r\nt1=etime(clock,ta)*1000;\r\n\r\nfprintf('Elapsed time = %.0f msec\\n',t1)\r\n\r\n%assert(isequal(ismember(a,b,'rows'),idx))\r\n\r\nt2=min(40000,t1); % ismember scores 40000 msec\r\nfeval(@assignin,'caller','score',floor(t2));\r\n","published":true,"deleted":false,"likes_count":0,"comments_count":6,"created_by":3097,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":19,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2012-09-24T02:05:42.000Z","updated_at":"2025-06-08T09:02:05.000Z","published_at":"2012-09-24T05:39:06.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\":[],\"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 perform very fast the 'ismember' function for a long and wide 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\u003eThe data is small integer representing data permutations of items like DNA and Rubik's cube faces and orientations.\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 Array of uint8 of dimensions (m, 16) with values 0: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\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 Array Equivalent to ismember(A,B,'rows')\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\u003eHints:\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\u003e1) Columns can be merged to form a reduced number of columns 2) Unique has the option to provide an Array and a sorting Index\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\"}]}"},{"id":958,"title":"ismember: Enhanced Performance for 'rows'  and width - Speed Scoring (66% savings)","description":"The Challenge is to perform very fast the 'ismember' function for a long and wide array.  The width of the array is expanded from 16 to 48.\r\n\r\nFast methods can reduce time by 66%.\r\n\r\nThe data is small integer representing data permutations of items like DNA and Rubik's cube faces and orientations.\r\n\r\n*Input:* Array of uint8 of dimensions (m, 48) with values 0:3\r\n\r\n*Output:* Array Equivalent to ismember(A,B,'rows')\r\n\r\n*Hints:*\r\n\r\n1) Columns can be merged to form a reduced number of columns\r\n2) Unique has the option to provide an Array and a sorting Index\r\n\r\nNote: Enhancements to speed usually improve memory allocation issues.","description_html":"\u003cp\u003eThe Challenge is to perform very fast the 'ismember' function for a long and wide array.  The width of the array is expanded from 16 to 48.\u003c/p\u003e\u003cp\u003eFast methods can reduce time by 66%.\u003c/p\u003e\u003cp\u003eThe data is small integer representing data permutations of items like DNA and Rubik's cube faces and orientations.\u003c/p\u003e\u003cp\u003e\u003cb\u003eInput:\u003c/b\u003e Array of uint8 of dimensions (m, 48) with values 0:3\u003c/p\u003e\u003cp\u003e\u003cb\u003eOutput:\u003c/b\u003e Array Equivalent to ismember(A,B,'rows')\u003c/p\u003e\u003cp\u003e\u003cb\u003eHints:\u003c/b\u003e\u003c/p\u003e\u003cp\u003e1) Columns can be merged to form a reduced number of columns\r\n2) Unique has the option to provide an Array and a sorting Index\u003c/p\u003e\u003cp\u003eNote: Enhancements to speed usually improve memory allocation issues.\u003c/p\u003e","function_template":"function idx = ismember_fast_rows(a,b)\r\n idx=ismember(a,b,'rows');\r\nend","test_suite":"%%\r\nfeval(@assignin,'caller','score',20000);\r\n%%\r\n% Functionality Tests\r\nL=128;\r\na=randi(4,L,48,'uint8')-1;\r\nb=randi(4,L,48,'uint8')-1;\r\nassert(isequal(ismember(a,b,'rows'),ismember_fast_rows(a,b)))\r\n\r\nb=a;\r\nassert(isequal(ismember(a,b,'rows'),ismember_fast_rows(a,b)))\r\n\r\nL=256;\r\na=randi(4,L,48,'uint8')-1;\r\nb=randi(4,L,48,'uint8')-1;\r\na(16:32,:)=b(32:48,:);\r\nassert(isequal(ismember(a,b,'rows'),ismember_fast_rows(a,b)))\r\n\r\n%%\r\n% 2M has a crash for 2x ismember\r\nL=1900000;  % ismember 19.6    fast  C 8.3 2M\r\ntic\r\na=randi(4,L,48,'uint8')-1;\r\nb=randi(4,L,48,'uint8')-1;\r\na(100:200,:)=b(400:500,:); % Put in some matching data\r\ntoc\r\n\r\n\r\nta=clock;\r\nidx = ismember_fast_rows(a,b);\r\nt1=etime(clock,ta)*1000;\r\n\r\nfprintf('Elapsed time = %.0f msec\\n',t1)\r\n\r\nassert(isequal(ismember(a,b,'rows'),idx))\r\n\r\nt2=min(20000,t1); % ismember 1.9M x 48 scores 19000 msec\r\nfeval(@assignin,'caller','score',floor(t2));\r\n\r\n","published":true,"deleted":false,"likes_count":0,"comments_count":0,"created_by":3097,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":21,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2012-09-24T05:10:17.000Z","updated_at":"2026-01-21T12:28:29.000Z","published_at":"2012-09-24T05:37:58.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\":[],\"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 perform very fast the 'ismember' function for a long and wide array. The width of the array is expanded from 16 to 48.\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\u003eFast methods can reduce time by 66%.\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 data is small integer representing data permutations of items like DNA and Rubik's cube faces and orientations.\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 Array of uint8 of dimensions (m, 48) with values 0: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\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 Array Equivalent to ismember(A,B,'rows')\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\u003eHints:\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\u003e1) Columns can be merged to form a reduced number of columns 2) Unique has the option to provide an Array and a sorting Index\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\u003eNote: Enhancements to speed usually improve memory allocation issues.\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\"}]}"},{"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,R0lGODlhhACBAPcAAFIBBYKCggAAjsfHvZZOTubm2KOioo4AAD09lgAAyqccHJ+xsfPz5cYAACMjldfXygEBrJKSkuLx8QQEU6yuu4UUFLmxsa2tpxAQnOQAAN/f0c3NxGVlaOnp6aoAAZqamv7+8gAAnAAA7AAAvImJibSlpbW4uJaWoCkpQ1EdHe7u4La2qsEKCqeTkwAAcrm5s9HZ2YGBlMLCwktLc+Li4qWlqpsAAFpaigAA3Zs1NPn569IAAMjQ0A8PtJCQnPLy8qqqqvMAAMrKynJycrMJCfr6+gwMpauwsMm6utTf32kAAJ2Dgw8PjKampp0lJenw7zc3igAAspWVla0MDO/v8LsAAAAAowAA/w8Puw4Oe7q6urzFxXBbYNnk5NXV1a6ursbNzfT//7a2tYeHhwAAlJQAAEhIiQAA1ZwgIM0AACkpjOn29gICZBkZleoAAJptbe7u7rUAAJ2dnQAA8wAAw46Ojriko3gfHwAAfdnZ2aQAAm1tkAAA49wAANHR0fX19f8AAHd5eXdjY30EBLgMDAcHtAYGpr6+vrKyst7e3qukpPDw6Z6Xl8bGxubm5rOurs7Ozf///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAQAAAAALAAAAACEAIEAAAj/ACMJHEiwoMGDCBMqXMiwocOHECNKnEixosWLGDNq3Mixo8ePIEOKHEmypMmTKFOqXMmypcuXMGOOhCMmkcybGjt8IXGoSSOcQCf+QERCjMA/TWQEXdpQCwlEBpsYZUq1oBASQH4gFNOkalU/deTAWdhIzh+vQBNF+EDDISSxaGM6kiLFS0QYETrEbYm0jhCKc/PsTflHDAcgF+F8gDTY5KGiieQItvhHzt/GIYXUaaI10g/LGOV0xdzRSwQ5jgr+MaC04qE6daCSzkjjQwSbCKVO1Mw5Us+zsyl2kFPHD0OuEL1IQU2w0QfgwR/+aELickMZBqAnrH37YB4peqM3/yR6SKIQuAiHF1dYG7d4hDJid5YIA7zB6dUbOvpg973VOhy4B9gHkwkUX3kP/fHBT/5FksdpjiTyQWoWDScYb2NJBIQW7znShBQFBobREEMY0FZFiMhGWgdNjNEaQYoxRpFyH6pYkRgGYPbDF2MweFBlPj5EgxwRTIaddhNBkt1eYhTVkG4OsViHjAOdN99EeQRSR3hUPfbFlQshxxAQJLxYUB5mTcQdDXlMyJQXBuQlUYpIEhRfjgr5IQeXDcGhRQAIRkKDFCfeNJwchUpUFpiRyPBUhgsNmWhCO5ZpkGJBwmSAIBh9xyUkm/HJ0Fz9JSTGGFP9CISZL9lRxRsY1f9GAw1hTeoQkAh5yWhUqb5UQhA7vLHGRUJwMIRxFsmRqRdy2OfQF722VIIbgGRAQBfCfdiIAVTeONWDiCqapkvTAgKIGzkkEdFQlgpUQ7QTySDFh6VK9BakK5VrLiBOINvUUwYhglhF0wUSSKdysqTvvk6wepAfH9SxayRffCGUDAFY7IcB+KrpZr7U7msuIYokBNaeZD0HkaNizOfFxxUVMAQVIIu8bxUtGKQWWw69LCpCV/VWUAdFUgTCCwhk8XNJC9vcgLACzVVXRBLaSpBaKCP0wwfWPTSAGRBcgcUiNdu8bx8EJPGFX4CBeNBw3S20msMJPXCDIVfk3QPZKjX/bTYgKSxwkYJBOiJHfg9BqZAGe2AgQt56852S32aXkQO2lAFR3nRsS4RjQirE0AYfkEO+d9l/m6tHEE6AgREQAdQRaLxLEsSAD2qcUXrpp/edQer76mGuArNLdIgUAYxm0XkZgtAEFAnsvnvvKSlyAPDm2rDvFI/sttlY59UZEZodvGDGCNJLTz1KJTRQRsh/C79vHIwktxaFAt170QooRJF++us7SQkykIEy7CB18ttXGpbQEO4IaCB4eeBDHrAHQ+DhfwCUHPuo5QY9HNBsCdxXsIaVHuL4620RyBRDCtA40pHhcRjknQYFCD8bNACEf0ObBO5Dpq4ppAnFA53o/3AAuRfGUIaoA0Qc4mCzEIosA5cjCFE4BJFVLUQHJ8jd7gQAwyNeIYAm8ZseQuhEm+WAB416ysQWAi2EgAAI0EsfF72Yt7El0VxVSGAZbaaAQHyhYxERE0HMh77/zdGLfMjCDMMIP5GlQXuA2OMTAYAEjMigCcAZwA38F8NDYlAEViADExbJtEaKrA8HSIMHsAeIPpSBBTm7CCQusIEKdhGDnkwfBPAQPTv2zZQic8MBroc9VAKiAQy0iAo4wAbS0TGXpYuCADj5RVKShHLBVMIHU+dKc6UBVhNRgQ/aMAIy0DFv0LwCHfBAzcjdsXJluCE3iQmIHRCAhA4BQQ3UEP89PgjgnFfIZQLIYIVbuvOXrBSeHqrAzTI88VoO+Vohr4ADc57zkDgIQQiImMF8/Q578vPAKs1mzGDmAAYKAcEhbhC20uHgnxe9Ah/IQAbdYRCMJbHeRxEYvDJ202xocN1BNsBSg1IUpnTEQwgEEL0j4vSaOyhDH4AHSXM1oKrmKqnZFGCjSFDQCEbN20vPGYUJTNSp1hzJr4IgVZ6KbAdY/enfiGCxSOhgDKOLYUW9uE5pAvSpav2dG2ywTZGVsQF6+KhW/zYFO1AAAWf931gxmACNujCsHUWouZaIQ7O5oa1yTZ0N2qlXpO5uoFZwZkAxq760iqRpIm0iVdMgzIT/NtWLk3WpZbfI2um5NiR+y6NhQTpG255zr5CbaU3l2NvS+XJywHzkvrD6tzIowbh0zG0o6YDL5ubtDIp8ZyvfF0lWugEATASeHm57xL1CQACRlV46d5fREGDgtyAZYOoK2ICRAq+AcFUve2PIBzaQgbSGZK0IaKo7wL4WmCI7wCBYaUzpxm/AknUBGwA63yvs8rYOBi6ERabNYhITscBc7xHPAIEQRMGizzQqHTTqW/EadqHAk2sBp2pYDENuwWQgoj85fMsRTNOoIc7viIOnxPSSlJ7nskEaevw/KzAVcrn14iETIICC/i/JHykBj9Wruj2GNnvyjCSGrRxZ5NKR/wxzOMNub4rfjzyBAIU1W1Wv+uS/cVbNpXtvfI8KUDzQlKMxBDNI3pDn4YrQBo08875i64GmjoCdGHRzDEUQggn4OLMsWUKaZXtKG+x0sTZbYhwSgNr2mvZ/76XDqxNdZ5EswcmOfuIBFOtQ4O0AAGxILW5nXboRuKCQHW4tTEowBT3/LQN6uCGq9dzSYf+PDmSAQBeNSEdFj2QLCiB1/BpQQOziFsaQ47KXS5fsGscEDDnI9d88UIZeC/i4ppVzCFTLbu/mrRC1LkkXcpCBIARBksG7Lkg/LT3kKtemzKUjHaAgvpZIAM/lxZ4blODfCx/3hVZmODqbmwA1nEAHQf9ZwxuEW0ypUpfK2TUwd7XMWhy0wQcqqAojJtzyepIXhCKHnLFdQOT08QEDMShAXFrA0BwTc8dAP2Jfz4DuI0JTBIbYwwMaAwQiOH1fg50yzNNHdS9n2eq3jMINBjAbMYQ7h/bOnthV52PlIlrTaM/bCMwAr8aAwQk5hPJmnazi0vFhqQM+ewzhnAAoNAEE/klCDkwpaUDEFtB5AyUZfIz3GLrA5ChvUCS6QICdtlLwNxNepecwB2kOWqzEbngbYpBz0Q9kDQQYc+WtOkY6yBrB9I19cjGwB6Xb3iBvkOe0J+mCapc2hoa4wdaPj5AWSDvuf7PBzM/9vyiYge3UV4jRAQiRAdQ3MehYnvXexQD58C8EERXAPggh3l50l9wA7Xc/Q7ZwB3O7+rsO4AMMoH8QAQPxdm90NFN8MHvGR4AQQXojVni4NQF7oAEOSBF31miYd0QQIH0XeBFvMHfBE3TeB34feBGidn6UBQUrkH8neBEt4HUjSHY3N4AvuBGI0Gx0tztn4ABJd4MeAW47mDdH94NA+BHwZnm6IwJGoHVHKBIDdwBRoHYm+IQh8QNcMANBZIVc2IVe+IVgGIZiOIZkWIZmeIZomIZquIZs2IYJERAAOw==\"},{\"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":950,"title":"Cody Matlab Version","description":"What is the current Cody Matlab Release? \r\n\r\n*Output:* string\r\n\r\n\r\n*Examples:*\r\n\r\n\r\n'(R2012a)' or 'R2012a'\r\n\r\n\r\nHint: We have moved forward\r\n\r\nPosted 9/16/12","description_html":"\u003cp\u003eWhat is the current Cody Matlab Release?\u003c/p\u003e\u003cp\u003e\u003cb\u003eOutput:\u003c/b\u003e string\u003c/p\u003e\u003cp\u003e\u003cb\u003eExamples:\u003c/b\u003e\u003c/p\u003e\u003cp\u003e'(R2012a)' or 'R2012a'\u003c/p\u003e\u003cp\u003eHint: We have moved forward\u003c/p\u003e\u003cp\u003ePosted 9/16/12\u003c/p\u003e","function_template":"function str = Cody_version\r\n  str='(R2012a)';\r\nend","test_suite":"%%\r\n% 09/21/2012\r\nstr=Cody_version;\r\nlatest=ver;\r\nRelease=latest(1,1).Release;\r\nRelease2= regexprep(Release,'[()]','');\r\nPass= strcmp(str,Release) || strcmp(str,Release2);\r\nassert(isequal(Pass,1))\r\n","published":true,"deleted":false,"likes_count":0,"comments_count":0,"created_by":3097,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":175,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2012-09-16T23:58:44.000Z","updated_at":"2026-02-05T16:40:06.000Z","published_at":"2012-09-17T00:50:33.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\":[],\"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\u003eWhat is the current Cody Matlab Release?\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 string\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\u003eExamples:\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\u003e'(R2012a)' or 'R2012a'\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\u003eHint: We have moved forward\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\u003ePosted 9/16/12\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\"}]}"},{"id":955,"title":"ismember: Enhanced Time Performance for 'rows'  - Speed Scoring (90% savings)","description":"The Challenge is to perform very fast the 'ismember' function for a long and wide array.\r\n\r\nThe data is small integer representing data permutations of items like DNA and Rubik's cube faces and orientations.\r\n\r\n*Input:* Array of uint8 of dimensions (m, 16) with values 0:3\r\n\r\n*Output:* Array Equivalent to ismember(A,B,'rows')\r\n\r\n*Hints:*\r\n\r\n1) Columns can be merged to form a reduced number of columns\r\n2) Unique has the option to provide an Array and a sorting Index","description_html":"\u003cp\u003eThe Challenge is to perform very fast the 'ismember' function for a long and wide array.\u003c/p\u003e\u003cp\u003eThe data is small integer representing data permutations of items like DNA and Rubik's cube faces and orientations.\u003c/p\u003e\u003cp\u003e\u003cb\u003eInput:\u003c/b\u003e Array of uint8 of dimensions (m, 16) with values 0:3\u003c/p\u003e\u003cp\u003e\u003cb\u003eOutput:\u003c/b\u003e Array Equivalent to ismember(A,B,'rows')\u003c/p\u003e\u003cp\u003e\u003cb\u003eHints:\u003c/b\u003e\u003c/p\u003e\u003cp\u003e1) Columns can be merged to form a reduced number of columns\r\n2) Unique has the option to provide an Array and a sorting Index\u003c/p\u003e","function_template":"function idx = ismember_fast_rows(a,b)\r\n idx=ismember(a,b,'rows');\r\nend","test_suite":"%%\r\nfeval(@assignin,'caller','score',40000);\r\n%%\r\n% Functionality Tests\r\nL=128;\r\na=randi(4,L,16,'uint8')-1;\r\nb=randi(4,L,16,'uint8')-1;\r\nassert(isequal(ismember(a,b,'rows'),ismember_fast_rows(a,b)))\r\n\r\nb=a;\r\nassert(isequal(ismember(a,b,'rows'),ismember_fast_rows(a,b)))\r\n\r\nL=256;\r\na=randi(4,L,16,'uint8')-1;\r\nb=randi(4,L,16,'uint8')-1;\r\na(16:32,:)=b(32:48,:);\r\nassert(isequal(ismember(a,b,'rows'),ismember_fast_rows(a,b)))\r\n\r\n%%\r\nL=4000000;  % ismember 40    fast 5.2\r\n% 34 sec 4M\r\ntic\r\na=randi(4,L,16,'uint8')-1;\r\nb=randi(4,L,16,'uint8')-1;\r\ntoc\r\n\r\n\r\nta=clock;\r\nidx = ismember_fast_rows(a,b);\r\nt1=etime(clock,ta)*1000;\r\n\r\nfprintf('Elapsed time = %.0f msec\\n',t1)\r\n\r\n%assert(isequal(ismember(a,b,'rows'),idx))\r\n\r\nt2=min(40000,t1); % ismember scores 40000 msec\r\nfeval(@assignin,'caller','score',floor(t2));\r\n","published":true,"deleted":false,"likes_count":0,"comments_count":6,"created_by":3097,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":19,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2012-09-24T02:05:42.000Z","updated_at":"2025-06-08T09:02:05.000Z","published_at":"2012-09-24T05:39:06.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\":[],\"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 perform very fast the 'ismember' function for a long and wide 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\u003eThe data is small integer representing data permutations of items like DNA and Rubik's cube faces and orientations.\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 Array of uint8 of dimensions (m, 16) with values 0: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\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 Array Equivalent to ismember(A,B,'rows')\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\u003eHints:\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\u003e1) Columns can be merged to form a reduced number of columns 2) Unique has the option to provide an Array and a sorting Index\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\"}]}"},{"id":958,"title":"ismember: Enhanced Performance for 'rows'  and width - Speed Scoring (66% savings)","description":"The Challenge is to perform very fast the 'ismember' function for a long and wide array.  The width of the array is expanded from 16 to 48.\r\n\r\nFast methods can reduce time by 66%.\r\n\r\nThe data is small integer representing data permutations of items like DNA and Rubik's cube faces and orientations.\r\n\r\n*Input:* Array of uint8 of dimensions (m, 48) with values 0:3\r\n\r\n*Output:* Array Equivalent to ismember(A,B,'rows')\r\n\r\n*Hints:*\r\n\r\n1) Columns can be merged to form a reduced number of columns\r\n2) Unique has the option to provide an Array and a sorting Index\r\n\r\nNote: Enhancements to speed usually improve memory allocation issues.","description_html":"\u003cp\u003eThe Challenge is to perform very fast the 'ismember' function for a long and wide array.  The width of the array is expanded from 16 to 48.\u003c/p\u003e\u003cp\u003eFast methods can reduce time by 66%.\u003c/p\u003e\u003cp\u003eThe data is small integer representing data permutations of items like DNA and Rubik's cube faces and orientations.\u003c/p\u003e\u003cp\u003e\u003cb\u003eInput:\u003c/b\u003e Array of uint8 of dimensions (m, 48) with values 0:3\u003c/p\u003e\u003cp\u003e\u003cb\u003eOutput:\u003c/b\u003e Array Equivalent to ismember(A,B,'rows')\u003c/p\u003e\u003cp\u003e\u003cb\u003eHints:\u003c/b\u003e\u003c/p\u003e\u003cp\u003e1) Columns can be merged to form a reduced number of columns\r\n2) Unique has the option to provide an Array and a sorting Index\u003c/p\u003e\u003cp\u003eNote: Enhancements to speed usually improve memory allocation issues.\u003c/p\u003e","function_template":"function idx = ismember_fast_rows(a,b)\r\n idx=ismember(a,b,'rows');\r\nend","test_suite":"%%\r\nfeval(@assignin,'caller','score',20000);\r\n%%\r\n% Functionality Tests\r\nL=128;\r\na=randi(4,L,48,'uint8')-1;\r\nb=randi(4,L,48,'uint8')-1;\r\nassert(isequal(ismember(a,b,'rows'),ismember_fast_rows(a,b)))\r\n\r\nb=a;\r\nassert(isequal(ismember(a,b,'rows'),ismember_fast_rows(a,b)))\r\n\r\nL=256;\r\na=randi(4,L,48,'uint8')-1;\r\nb=randi(4,L,48,'uint8')-1;\r\na(16:32,:)=b(32:48,:);\r\nassert(isequal(ismember(a,b,'rows'),ismember_fast_rows(a,b)))\r\n\r\n%%\r\n% 2M has a crash for 2x ismember\r\nL=1900000;  % ismember 19.6    fast  C 8.3 2M\r\ntic\r\na=randi(4,L,48,'uint8')-1;\r\nb=randi(4,L,48,'uint8')-1;\r\na(100:200,:)=b(400:500,:); % Put in some matching data\r\ntoc\r\n\r\n\r\nta=clock;\r\nidx = ismember_fast_rows(a,b);\r\nt1=etime(clock,ta)*1000;\r\n\r\nfprintf('Elapsed time = %.0f msec\\n',t1)\r\n\r\nassert(isequal(ismember(a,b,'rows'),idx))\r\n\r\nt2=min(20000,t1); % ismember 1.9M x 48 scores 19000 msec\r\nfeval(@assignin,'caller','score',floor(t2));\r\n\r\n","published":true,"deleted":false,"likes_count":0,"comments_count":0,"created_by":3097,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":21,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2012-09-24T05:10:17.000Z","updated_at":"2026-01-21T12:28:29.000Z","published_at":"2012-09-24T05:37:58.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\":[],\"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 perform very fast the 'ismember' function for a long and wide array. The width of the array is expanded from 16 to 48.\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\u003eFast methods can reduce time by 66%.\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 data is small integer representing data permutations of items like DNA and Rubik's cube faces and orientations.\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 Array of uint8 of dimensions (m, 48) with values 0: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\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 Array Equivalent to ismember(A,B,'rows')\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\u003eHints:\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\u003e1) Columns can be merged to form a reduced number of columns 2) Unique has the option to provide an Array and a sorting Index\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\u003eNote: Enhancements to speed usually improve memory allocation issues.\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\"}]}"},{"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:\"ismember\"","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:\"ismember\"","current_player":null,"sort":"map(difficulty_value,0,0,999) asc"},"parser":"MathWorks::Search::Solr::QueryParser","directives":{"term":{"directives":{"tag":[["tag:\"ismember\"","","\"","ismember","\""]]}}},"facets":{"#\u003cMathWorks::Search::Field:0x00007f5e88928cc0\u003e":null,"#\u003cMathWorks::Search::Field:0x00007f5e88928c20\u003e":null},"filters":{"#\u003cMathWorks::Search::Field:0x00007f5e88927aa0\u003e":"\"cody:problem\""},"fields":{"#\u003cMathWorks::Search::Field:0x00007f5e88929080\u003e":1,"#\u003cMathWorks::Search::Field:0x00007f5e88928ea0\u003e":50,"#\u003cMathWorks::Search::Field:0x00007f5e88928e00\u003e":"map(difficulty_value,0,0,999) asc","#\u003cMathWorks::Search::Field:0x00007f5e88928d60\u003e":"tag:\"ismember\""},"user_query":{"#\u003cMathWorks::Search::Field:0x00007f5e88928d60\u003e":"tag:\"ismember\""},"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:\"ismember\"","current_player":null,"sort":"map(difficulty_value,0,0,999) asc"},"parser":"MathWorks::Search::Solr::QueryParser","directives":{"term":{"directives":{"tag":[["tag:\"ismember\"","","\"","ismember","\""]]}}},"facets":{"#\u003cMathWorks::Search::Field:0x00007f5e88928cc0\u003e":null,"#\u003cMathWorks::Search::Field:0x00007f5e88928c20\u003e":null},"filters":{"#\u003cMathWorks::Search::Field:0x00007f5e88927aa0\u003e":"\"cody:problem\""},"fields":{"#\u003cMathWorks::Search::Field:0x00007f5e88929080\u003e":1,"#\u003cMathWorks::Search::Field:0x00007f5e88928ea0\u003e":50,"#\u003cMathWorks::Search::Field:0x00007f5e88928e00\u003e":"map(difficulty_value,0,0,999) asc","#\u003cMathWorks::Search::Field:0x00007f5e88928d60\u003e":"tag:\"ismember\""},"user_query":{"#\u003cMathWorks::Search::Field:0x00007f5e88928d60\u003e":"tag:\"ismember\""},"queried_facets":{}},"options":{"fields":["id","difficulty_rating"]},"join":" "},"results":[{"id":950,"difficulty_rating":"easy"},{"id":955,"difficulty_rating":"easy"},{"id":958,"difficulty_rating":"easy-medium"},{"id":916,"difficulty_rating":"unrated"}]}}