{"group":{"id":1,"name":"Community","lockable":false,"created_at":"2012-01-18T18:02:15.000Z","updated_at":"2025-12-14T01:33:56.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":"2025-12-14T00: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":1067,"title":"The Dark Side of the Die","description":"It is well-known that opposite sides of a classic hexahedral die add to 7. Given a vector of dice rolls, calculate the sum of the hidden face. That is, the sum of the values opposite the rolled value.\r\n\r\nFor example, if we roll a 2 and then a 6, we calculate that the opposite side of the dice were 5 and 1. Therefore, the answer is 6. This can also be calculated another way: since we know we rolled 2 dice, the total sum of the front and back faces of the dice must be 14 (7x2). If we then subtract the sum of the rolled values (2+6=8) from our total sum, we get the correct final answer (14-8=6)!","description_html":"\u003cp\u003eIt is well-known that opposite sides of a classic hexahedral die add to 7. Given a vector of dice rolls, calculate the sum of the hidden face. That is, the sum of the values opposite the rolled value.\u003c/p\u003e\u003cp\u003eFor example, if we roll a 2 and then a 6, we calculate that the opposite side of the dice were 5 and 1. Therefore, the answer is 6. This can also be calculated another way: since we know we rolled 2 dice, the total sum of the front and back faces of the dice must be 14 (7x2). If we then subtract the sum of the rolled values (2+6=8) from our total sum, we get the correct final answer (14-8=6)!\u003c/p\u003e","function_template":"function darksum = dark_dice(rolls)\r\n  darksum = 7;\r\nend","test_suite":"%%\r\nassert(isequal(dark_dice(5),2))\r\n\r\n%%\r\nassert(isequal(dark_dice([5 1]),8))\r\n\r\n%%\r\nassert(isequal(dark_dice([3 4 3]),11))\r\n\r\n%%\r\nassert(isequal(dark_dice([4 4 2 3]),15))\r\n\r\n%%\r\nassert(isequal(dark_dice([1 6 2 1 3]),22))\r\n\r\n%%\r\nassert(isequal(dark_dice([2 3 3 6 6 1]),21))\r\n\r\n%%\r\nassert(isequal(dark_dice([5 2 3 4 6 3 6]),20))\r\n\r\n%%\r\nassert(isequal(dark_dice([2 5 4 4 5 4 2 1]),29))\r\n\r\n%%\r\nassert(isequal(dark_dice([6 2 1 4 6 5 2 3 3]),31))\r\n\r\n%%\r\nassert(isequal(dark_dice([6 1 6 4 3 2 3 3 1 4]),37))\r\n\r\n%%\r\nassert(isequal(dark_dice([2 3 4 2 2 4 2 5 6 5 3]),39))\r\n\r\n%%\r\nassert(isequal(dark_dice([4 1 6 6 5 2 4 1 3 2 1 2]),47))\r\n\r\n%%\r\nassert(isequal(dark_dice([3 1 4 3 5 5 4 1 1 2 4 4 3]),51))\r\n\r\n%%\r\nassert(isequal(dark_dice([5 5 6 4 2 1 4 5 3 1 2 1 2 3]),54))\r\n\r\n%%\r\nassert(isequal(dark_dice([4 3 6 4 6 4 6 2 5 2 5 5 1 2 2]),48))\r\n\r\n%%\r\nassert(isequal(dark_dice([5 6 3 5 5 1 4 3 6 1 3 3 3 5 2 5]),52))\r\n\r\n%%\r\nassert(isequal(dark_dice([3 1 2 5 3 1 3 4 2 5 2 6 2 5 2 2 1]),70))\r\n\r\n%%\r\nassert(isequal(dark_dice([4 5 4 3 4 4 5 4 6 2 5 2 1 4 3 3 4 5]),58))\r\n\r\n%%\r\nassert(isequal(dark_dice([3 4 3 6 5 2 4 4 4 6 2 2 1 6 4 3 4 4 4]),62))\r\n\r\n%%\r\nassert(isequal(dark_dice([4 5 4 6 2 1 1 1 3 3 3 5 4 5 6 6 2 1 5 1]),72))\r\n","published":true,"deleted":false,"likes_count":2,"comments_count":0,"created_by":134,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":144,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2012-11-27T06:30:17.000Z","updated_at":"2026-02-18T09:47:04.000Z","published_at":"2012-12-05T06:26:32.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\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"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\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\u003eIt is well-known that opposite sides of a classic hexahedral die add to 7. Given a vector of dice rolls, calculate the sum of the hidden face. That is, the sum of the values opposite the rolled value.\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\u003eFor example, if we roll a 2 and then a 6, we calculate that the opposite side of the dice were 5 and 1. Therefore, the answer is 6. This can also be calculated another way: since we know we rolled 2 dice, the total sum of the front and back faces of the dice must be 14 (7x2). If we then subtract the sum of the rolled values (2+6=8) from our total sum, we get the correct final answer (14-8=6)!\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":986,"title":"Penny Flipping: Reverse subsets of a sequence of coins until you recover the original configuration","description":"The original Penny Flipping Problem (PF-1) starts with a stack of N pennies arranged with all the coins heads up. The first operation is to flip the top coin. The second operation is to take the top two coins, invert this substack, and replace the substack on the main stack. The Nth operation is to invert the entire stack. The (N+1) operation is the same as the first operation.  This sequence of reversals continues until the stack is returned to an all heads up configuration. Here is the sequence for N=3, with 0 corresponding to heads up and 1 corresponding to heads down:\r\n\r\n 0 1 2 3 4 5 6 7 8 9\r\n -------------------\r\n 0 1 1 1 0 0 1 0 1 0\r\n 0 0 0 1 1 1 0 0 1 0\r\n 0 0 0 0 0 0 1 1 1 0\r\n\r\nNine operations are required to regain the all heads up configuration for N=3. The problem for PF-1 is to find the number of operations to regain all heads up, so PF-1(3) = 9.\r\n\r\n*Note:* Inverting the substack performs two distinct operations on the coins. The orientations of the coins are reversed, and the positions of the coins in the substack are also exchanged across the middle of the substack.\r\n\r\nThe alternating Penny Flipping Problem (PF-2) is the same as for PF-1 except that successive operations alternate from the top and the bottom of the stack, instead of just from the top, as with PF-1. Here is the PF-2 sequence for N=3:\r\n\r\n 0 1 2 3 \r\n -------\r\n 0 1 1 0 \r\n 0 0 1 0 \r\n 0 0 1 0 \r\n\r\nSo PF-2(3) = 3.\r\n\r\nWrite a function that returns PF-2(N), for N a positive integer.\r\n\r\nI have posted a plot of PF-2 for N=1:50 at this Google link:\r\n\r\n\u003chttps://picasaweb.google.com/115436881097292918347/Matlab#5798055972168308562 coinFlipAlt Plot\u003e\r\n","description_html":"\u003cp\u003eThe original Penny Flipping Problem (PF-1) starts with a stack of N pennies arranged with all the coins heads up. The first operation is to flip the top coin. The second operation is to take the top two coins, invert this substack, and replace the substack on the main stack. The Nth operation is to invert the entire stack. The (N+1) operation is the same as the first operation.  This sequence of reversals continues until the stack is returned to an all heads up configuration. Here is the sequence for N=3, with 0 corresponding to heads up and 1 corresponding to heads down:\u003c/p\u003e\u003cpre\u003e 0 1 2 3 4 5 6 7 8 9\r\n -------------------\r\n 0 1 1 1 0 0 1 0 1 0\r\n 0 0 0 1 1 1 0 0 1 0\r\n 0 0 0 0 0 0 1 1 1 0\u003c/pre\u003e\u003cp\u003eNine operations are required to regain the all heads up configuration for N=3. The problem for PF-1 is to find the number of operations to regain all heads up, so PF-1(3) = 9.\u003c/p\u003e\u003cp\u003e\u003cb\u003eNote:\u003c/b\u003e Inverting the substack performs two distinct operations on the coins. The orientations of the coins are reversed, and the positions of the coins in the substack are also exchanged across the middle of the substack.\u003c/p\u003e\u003cp\u003eThe alternating Penny Flipping Problem (PF-2) is the same as for PF-1 except that successive operations alternate from the top and the bottom of the stack, instead of just from the top, as with PF-1. Here is the PF-2 sequence for N=3:\u003c/p\u003e\u003cpre\u003e 0 1 2 3 \r\n -------\r\n 0 1 1 0 \r\n 0 0 1 0 \r\n 0 0 1 0 \u003c/pre\u003e\u003cp\u003eSo PF-2(3) = 3.\u003c/p\u003e\u003cp\u003eWrite a function that returns PF-2(N), for N a positive integer.\u003c/p\u003e\u003cp\u003eI have posted a plot of PF-2 for N=1:50 at this Google link:\u003c/p\u003e\u003cp\u003e\u003ca href=\"https://picasaweb.google.com/115436881097292918347/Matlab#5798055972168308562\"\u003ecoinFlipAlt Plot\u003c/a\u003e\u003c/p\u003e","function_template":"function count = coinFlipAlt(n)\r\n  count = 1;\r\nend","test_suite":"%%\r\nn = 1;\r\ny_correct = 2;\r\nassert(isequal(coinFlipAlt(n),y_correct))\r\n%%\r\nn = 3;\r\ny_correct = 3;\r\nassert(isequal(coinFlipAlt(n),y_correct))\r\n%%\r\nn = 10;\r\ny_correct = 295;\r\nassert(isequal(coinFlipAlt(n),y_correct))\r\n","published":true,"deleted":false,"likes_count":2,"comments_count":7,"created_by":6970,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":17,"test_suite_updated_at":"2012-10-10T17:03:47.000Z","rescore_all_solutions":false,"group_id":1,"created_at":"2012-10-10T16:24:20.000Z","updated_at":"2025-12-05T12:23:57.000Z","published_at":"2012-10-10T17:03:47.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 original Penny Flipping Problem (PF-1) starts with a stack of N pennies arranged with all the coins heads up. The first operation is to flip the top coin. The second operation is to take the top two coins, invert this substack, and replace the substack on the main stack. The Nth operation is to invert the entire stack. The (N+1) operation is the same as the first operation. This sequence of reversals continues until the stack is returned to an all heads up configuration. Here is the sequence for N=3, with 0 corresponding to heads up and 1 corresponding to heads down:\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[ 0 1 2 3 4 5 6 7 8 9\\n -------------------\\n 0 1 1 1 0 0 1 0 1 0\\n 0 0 0 1 1 1 0 0 1 0\\n 0 0 0 0 0 0 1 1 1 0]]\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:t\u003eNine operations are required to regain the all heads up configuration for N=3. The problem for PF-1 is to find the number of operations to regain all heads up, so PF-1(3) = 9.\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\u003eNote:\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e Inverting the substack performs two distinct operations on the coins. The orientations of the coins are reversed, and the positions of the coins in the substack are also exchanged across the middle of the substack.\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 alternating Penny Flipping Problem (PF-2) is the same as for PF-1 except that successive operations alternate from the top and the bottom of the stack, instead of just from the top, as with PF-1. Here is the PF-2 sequence for N=3:\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[ 0 1 2 3 \\n -------\\n 0 1 1 0 \\n 0 0 1 0 \\n 0 0 1 0]]\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:t\u003eSo PF-2(3) = 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:t\u003eWrite a function that returns PF-2(N), for N a positive integer.\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\u003eI have posted a plot of PF-2 for N=1:50 at this Google link:\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=\\\"https://picasaweb.google.com/115436881097292918347/Matlab#5798055972168308562\\\"\u003e\u003cw:r\u003e\u003cw:t\u003ecoinFlipAlt Plot\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\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\"}]}"}],"problem_search":{"errors":[],"problems":[{"id":1067,"title":"The Dark Side of the Die","description":"It is well-known that opposite sides of a classic hexahedral die add to 7. Given a vector of dice rolls, calculate the sum of the hidden face. That is, the sum of the values opposite the rolled value.\r\n\r\nFor example, if we roll a 2 and then a 6, we calculate that the opposite side of the dice were 5 and 1. Therefore, the answer is 6. This can also be calculated another way: since we know we rolled 2 dice, the total sum of the front and back faces of the dice must be 14 (7x2). If we then subtract the sum of the rolled values (2+6=8) from our total sum, we get the correct final answer (14-8=6)!","description_html":"\u003cp\u003eIt is well-known that opposite sides of a classic hexahedral die add to 7. Given a vector of dice rolls, calculate the sum of the hidden face. That is, the sum of the values opposite the rolled value.\u003c/p\u003e\u003cp\u003eFor example, if we roll a 2 and then a 6, we calculate that the opposite side of the dice were 5 and 1. Therefore, the answer is 6. This can also be calculated another way: since we know we rolled 2 dice, the total sum of the front and back faces of the dice must be 14 (7x2). If we then subtract the sum of the rolled values (2+6=8) from our total sum, we get the correct final answer (14-8=6)!\u003c/p\u003e","function_template":"function darksum = dark_dice(rolls)\r\n  darksum = 7;\r\nend","test_suite":"%%\r\nassert(isequal(dark_dice(5),2))\r\n\r\n%%\r\nassert(isequal(dark_dice([5 1]),8))\r\n\r\n%%\r\nassert(isequal(dark_dice([3 4 3]),11))\r\n\r\n%%\r\nassert(isequal(dark_dice([4 4 2 3]),15))\r\n\r\n%%\r\nassert(isequal(dark_dice([1 6 2 1 3]),22))\r\n\r\n%%\r\nassert(isequal(dark_dice([2 3 3 6 6 1]),21))\r\n\r\n%%\r\nassert(isequal(dark_dice([5 2 3 4 6 3 6]),20))\r\n\r\n%%\r\nassert(isequal(dark_dice([2 5 4 4 5 4 2 1]),29))\r\n\r\n%%\r\nassert(isequal(dark_dice([6 2 1 4 6 5 2 3 3]),31))\r\n\r\n%%\r\nassert(isequal(dark_dice([6 1 6 4 3 2 3 3 1 4]),37))\r\n\r\n%%\r\nassert(isequal(dark_dice([2 3 4 2 2 4 2 5 6 5 3]),39))\r\n\r\n%%\r\nassert(isequal(dark_dice([4 1 6 6 5 2 4 1 3 2 1 2]),47))\r\n\r\n%%\r\nassert(isequal(dark_dice([3 1 4 3 5 5 4 1 1 2 4 4 3]),51))\r\n\r\n%%\r\nassert(isequal(dark_dice([5 5 6 4 2 1 4 5 3 1 2 1 2 3]),54))\r\n\r\n%%\r\nassert(isequal(dark_dice([4 3 6 4 6 4 6 2 5 2 5 5 1 2 2]),48))\r\n\r\n%%\r\nassert(isequal(dark_dice([5 6 3 5 5 1 4 3 6 1 3 3 3 5 2 5]),52))\r\n\r\n%%\r\nassert(isequal(dark_dice([3 1 2 5 3 1 3 4 2 5 2 6 2 5 2 2 1]),70))\r\n\r\n%%\r\nassert(isequal(dark_dice([4 5 4 3 4 4 5 4 6 2 5 2 1 4 3 3 4 5]),58))\r\n\r\n%%\r\nassert(isequal(dark_dice([3 4 3 6 5 2 4 4 4 6 2 2 1 6 4 3 4 4 4]),62))\r\n\r\n%%\r\nassert(isequal(dark_dice([4 5 4 6 2 1 1 1 3 3 3 5 4 5 6 6 2 1 5 1]),72))\r\n","published":true,"deleted":false,"likes_count":2,"comments_count":0,"created_by":134,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":144,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2012-11-27T06:30:17.000Z","updated_at":"2026-02-18T09:47:04.000Z","published_at":"2012-12-05T06:26:32.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\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"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\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\u003eIt is well-known that opposite sides of a classic hexahedral die add to 7. Given a vector of dice rolls, calculate the sum of the hidden face. That is, the sum of the values opposite the rolled value.\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\u003eFor example, if we roll a 2 and then a 6, we calculate that the opposite side of the dice were 5 and 1. Therefore, the answer is 6. This can also be calculated another way: since we know we rolled 2 dice, the total sum of the front and back faces of the dice must be 14 (7x2). If we then subtract the sum of the rolled values (2+6=8) from our total sum, we get the correct final answer (14-8=6)!\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":986,"title":"Penny Flipping: Reverse subsets of a sequence of coins until you recover the original configuration","description":"The original Penny Flipping Problem (PF-1) starts with a stack of N pennies arranged with all the coins heads up. The first operation is to flip the top coin. The second operation is to take the top two coins, invert this substack, and replace the substack on the main stack. The Nth operation is to invert the entire stack. The (N+1) operation is the same as the first operation.  This sequence of reversals continues until the stack is returned to an all heads up configuration. Here is the sequence for N=3, with 0 corresponding to heads up and 1 corresponding to heads down:\r\n\r\n 0 1 2 3 4 5 6 7 8 9\r\n -------------------\r\n 0 1 1 1 0 0 1 0 1 0\r\n 0 0 0 1 1 1 0 0 1 0\r\n 0 0 0 0 0 0 1 1 1 0\r\n\r\nNine operations are required to regain the all heads up configuration for N=3. The problem for PF-1 is to find the number of operations to regain all heads up, so PF-1(3) = 9.\r\n\r\n*Note:* Inverting the substack performs two distinct operations on the coins. The orientations of the coins are reversed, and the positions of the coins in the substack are also exchanged across the middle of the substack.\r\n\r\nThe alternating Penny Flipping Problem (PF-2) is the same as for PF-1 except that successive operations alternate from the top and the bottom of the stack, instead of just from the top, as with PF-1. Here is the PF-2 sequence for N=3:\r\n\r\n 0 1 2 3 \r\n -------\r\n 0 1 1 0 \r\n 0 0 1 0 \r\n 0 0 1 0 \r\n\r\nSo PF-2(3) = 3.\r\n\r\nWrite a function that returns PF-2(N), for N a positive integer.\r\n\r\nI have posted a plot of PF-2 for N=1:50 at this Google link:\r\n\r\n\u003chttps://picasaweb.google.com/115436881097292918347/Matlab#5798055972168308562 coinFlipAlt Plot\u003e\r\n","description_html":"\u003cp\u003eThe original Penny Flipping Problem (PF-1) starts with a stack of N pennies arranged with all the coins heads up. The first operation is to flip the top coin. The second operation is to take the top two coins, invert this substack, and replace the substack on the main stack. The Nth operation is to invert the entire stack. The (N+1) operation is the same as the first operation.  This sequence of reversals continues until the stack is returned to an all heads up configuration. Here is the sequence for N=3, with 0 corresponding to heads up and 1 corresponding to heads down:\u003c/p\u003e\u003cpre\u003e 0 1 2 3 4 5 6 7 8 9\r\n -------------------\r\n 0 1 1 1 0 0 1 0 1 0\r\n 0 0 0 1 1 1 0 0 1 0\r\n 0 0 0 0 0 0 1 1 1 0\u003c/pre\u003e\u003cp\u003eNine operations are required to regain the all heads up configuration for N=3. The problem for PF-1 is to find the number of operations to regain all heads up, so PF-1(3) = 9.\u003c/p\u003e\u003cp\u003e\u003cb\u003eNote:\u003c/b\u003e Inverting the substack performs two distinct operations on the coins. The orientations of the coins are reversed, and the positions of the coins in the substack are also exchanged across the middle of the substack.\u003c/p\u003e\u003cp\u003eThe alternating Penny Flipping Problem (PF-2) is the same as for PF-1 except that successive operations alternate from the top and the bottom of the stack, instead of just from the top, as with PF-1. Here is the PF-2 sequence for N=3:\u003c/p\u003e\u003cpre\u003e 0 1 2 3 \r\n -------\r\n 0 1 1 0 \r\n 0 0 1 0 \r\n 0 0 1 0 \u003c/pre\u003e\u003cp\u003eSo PF-2(3) = 3.\u003c/p\u003e\u003cp\u003eWrite a function that returns PF-2(N), for N a positive integer.\u003c/p\u003e\u003cp\u003eI have posted a plot of PF-2 for N=1:50 at this Google link:\u003c/p\u003e\u003cp\u003e\u003ca href=\"https://picasaweb.google.com/115436881097292918347/Matlab#5798055972168308562\"\u003ecoinFlipAlt Plot\u003c/a\u003e\u003c/p\u003e","function_template":"function count = coinFlipAlt(n)\r\n  count = 1;\r\nend","test_suite":"%%\r\nn = 1;\r\ny_correct = 2;\r\nassert(isequal(coinFlipAlt(n),y_correct))\r\n%%\r\nn = 3;\r\ny_correct = 3;\r\nassert(isequal(coinFlipAlt(n),y_correct))\r\n%%\r\nn = 10;\r\ny_correct = 295;\r\nassert(isequal(coinFlipAlt(n),y_correct))\r\n","published":true,"deleted":false,"likes_count":2,"comments_count":7,"created_by":6970,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":17,"test_suite_updated_at":"2012-10-10T17:03:47.000Z","rescore_all_solutions":false,"group_id":1,"created_at":"2012-10-10T16:24:20.000Z","updated_at":"2025-12-05T12:23:57.000Z","published_at":"2012-10-10T17:03:47.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 original Penny Flipping Problem (PF-1) starts with a stack of N pennies arranged with all the coins heads up. The first operation is to flip the top coin. The second operation is to take the top two coins, invert this substack, and replace the substack on the main stack. The Nth operation is to invert the entire stack. The (N+1) operation is the same as the first operation. This sequence of reversals continues until the stack is returned to an all heads up configuration. Here is the sequence for N=3, with 0 corresponding to heads up and 1 corresponding to heads down:\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[ 0 1 2 3 4 5 6 7 8 9\\n -------------------\\n 0 1 1 1 0 0 1 0 1 0\\n 0 0 0 1 1 1 0 0 1 0\\n 0 0 0 0 0 0 1 1 1 0]]\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:t\u003eNine operations are required to regain the all heads up configuration for N=3. The problem for PF-1 is to find the number of operations to regain all heads up, so PF-1(3) = 9.\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\u003eNote:\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e Inverting the substack performs two distinct operations on the coins. The orientations of the coins are reversed, and the positions of the coins in the substack are also exchanged across the middle of the substack.\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 alternating Penny Flipping Problem (PF-2) is the same as for PF-1 except that successive operations alternate from the top and the bottom of the stack, instead of just from the top, as with PF-1. Here is the PF-2 sequence for N=3:\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[ 0 1 2 3 \\n -------\\n 0 1 1 0 \\n 0 0 1 0 \\n 0 0 1 0]]\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:t\u003eSo PF-2(3) = 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:t\u003eWrite a function that returns PF-2(N), for N a positive integer.\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\u003eI have posted a plot of PF-2 for N=1:50 at this Google link:\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=\\\"https://picasaweb.google.com/115436881097292918347/Matlab#5798055972168308562\\\"\u003e\u003cw:r\u003e\u003cw:t\u003ecoinFlipAlt Plot\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\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\"}]}"}],"term":"tag:\"reverse\"","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:\"reverse\"","current_player":null,"sort":"map(difficulty_value,0,0,999) asc"},"parser":"MathWorks::Search::Solr::QueryParser","directives":{"term":{"directives":{"tag":[["tag:\"reverse\"","","\"","reverse","\""]]}}},"facets":{"#\u003cMathWorks::Search::Field:0x00007f1942296d70\u003e":null,"#\u003cMathWorks::Search::Field:0x00007f1942296cd0\u003e":null},"filters":{"#\u003cMathWorks::Search::Field:0x00007f1942296370\u003e":"\"cody:problem\""},"fields":{"#\u003cMathWorks::Search::Field:0x00007f1942297130\u003e":1,"#\u003cMathWorks::Search::Field:0x00007f1942297090\u003e":50,"#\u003cMathWorks::Search::Field:0x00007f1942296ff0\u003e":"map(difficulty_value,0,0,999) asc","#\u003cMathWorks::Search::Field:0x00007f1942296f50\u003e":"tag:\"reverse\""},"user_query":{"#\u003cMathWorks::Search::Field:0x00007f1942296f50\u003e":"tag:\"reverse\""},"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":"search","password":"J3bGPZzQ7asjJcCk","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:\"reverse\"","current_player":null,"sort":"map(difficulty_value,0,0,999) asc"},"parser":"MathWorks::Search::Solr::QueryParser","directives":{"term":{"directives":{"tag":[["tag:\"reverse\"","","\"","reverse","\""]]}}},"facets":{"#\u003cMathWorks::Search::Field:0x00007f1942296d70\u003e":null,"#\u003cMathWorks::Search::Field:0x00007f1942296cd0\u003e":null},"filters":{"#\u003cMathWorks::Search::Field:0x00007f1942296370\u003e":"\"cody:problem\""},"fields":{"#\u003cMathWorks::Search::Field:0x00007f1942297130\u003e":1,"#\u003cMathWorks::Search::Field:0x00007f1942297090\u003e":50,"#\u003cMathWorks::Search::Field:0x00007f1942296ff0\u003e":"map(difficulty_value,0,0,999) asc","#\u003cMathWorks::Search::Field:0x00007f1942296f50\u003e":"tag:\"reverse\""},"user_query":{"#\u003cMathWorks::Search::Field:0x00007f1942296f50\u003e":"tag:\"reverse\""},"queried_facets":{}},"options":{"fields":["id","difficulty_rating"]},"join":" "},"results":[{"id":1067,"difficulty_rating":"easy"},{"id":986,"difficulty_rating":"easy-medium"}]}}