{"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":61144,"title":"FEN Chess Notation","description":"Note: This problem is the reverse, or complement, of Problem 61155 - FEN to Chess Board.\r\nGiven an 8-by-8 character matrix representing a chess board, convert it to FEN (Forsyth-Edwards Notation) board position format.\r\nThe input matrix uses:\r\nDots (\".\") for empty squares\r\nLetters for pieces: \"rnbqkp\" (black pieces) and \"RNBQKP\" (white pieces)\r\nFEN notation encodes each row from top to bottom, separated by slashes (\"/\"). Consecutive empty squares are replaced by their count (1-8).\r\n\r\nExample 1\r\nStarting position:\r\ninput = [ ...\r\n    'rnbqkbnr'\r\n    'pppppppp'\r\n    '........'\r\n    '........'\r\n    '........'\r\n    '........'\r\n    'PPPPPPPP'\r\n    'RNBQKBNR']\r\noutput =\r\n  'rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR'\r\nExample 2\r\nAfter white plays e4:\r\ninput = [ ...\r\n    'rnbqkbnr'\r\n    'pppppppp'\r\n    '........'\r\n    '........'\r\n    '....P...'\r\n    '........'\r\n    'PPPP.PPP'\r\n    'RNBQKBNR']\r\noutput =\r\n  'rnbqkbnr/pppppppp/8/8/4P3/8/PPPP1PPP/RNBQKBNR'\r\n\r\nNote: Empty squares before the P are \"4\", the P itself, then \"3\" empty squares after.","description_html":"\u003cdiv style = \"text-align: start; line-height: 20.44px; min-height: 0px; white-space: normal; color: rgb(33, 33, 33); font-family: Menlo, Monaco, Consolas, monospace; font-style: normal; font-size: 14px; font-weight: 400; text-decoration: none; white-space: normal; \"\u003e\u003cdiv style=\"block-size: 1352.21px; display: block; min-width: 0px; padding-block-start: 0px; padding-inline-start: 2px; padding-left: 2px; padding-top: 0px; perspective-origin: 333.5px 676.104px; transform-origin: 333.5px 676.104px; vertical-align: baseline; \"\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.5px; text-align: left; transform-origin: 309.5px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eNote: This problem is the reverse, or complement, of\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e \u003c/span\u003e\u003c/span\u003e\u003ca target='_blank' href = \"https://www.mathworks.com/matlabcentral/cody/problems/61155-fen-to-chess-board\"\u003e\u003cspan style=\"border-block-end-color: rgb(0, 91, 130); border-block-start-color: rgb(0, 91, 130); border-bottom-color: rgb(0, 91, 130); border-inline-end-color: rgb(0, 91, 130); border-inline-start-color: rgb(0, 91, 130); border-left-color: rgb(0, 91, 130); border-right-color: rgb(0, 91, 130); border-top-color: rgb(0, 91, 130); caret-color: rgb(0, 91, 130); color: rgb(0, 91, 130); column-rule-color: rgb(0, 91, 130); outline-color: rgb(0, 91, 130); text-decoration-color: rgb(0, 91, 130); text-emphasis-color: rgb(0, 91, 130); \"\u003e\u003cspan style=\"\"\u003eProblem 61155 - FEN to Chess Board\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 42px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 21px; text-align: left; transform-origin: 309.5px 21px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eGiven an 8-by-8 character matrix representing a chess board, convert it to FEN (\u003c/span\u003e\u003c/span\u003e\u003ca target='_blank' href = \"https://en.wikipedia.org/wiki/Forsyth%E2%80%93Edwards_Notation\"\u003e\u003cspan style=\"border-block-end-color: rgb(0, 91, 130); border-block-start-color: rgb(0, 91, 130); border-bottom-color: rgb(0, 91, 130); border-inline-end-color: rgb(0, 91, 130); border-inline-start-color: rgb(0, 91, 130); border-left-color: rgb(0, 91, 130); border-right-color: rgb(0, 91, 130); border-top-color: rgb(0, 91, 130); caret-color: rgb(0, 91, 130); color: rgb(0, 91, 130); column-rule-color: rgb(0, 91, 130); outline-color: rgb(0, 91, 130); text-decoration-color: rgb(0, 91, 130); text-emphasis-color: rgb(0, 91, 130); \"\u003e\u003cspan style=\"\"\u003eForsyth-Edwards Notation\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e) board position format.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.5px; text-align: left; transform-origin: 309.5px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThe input matrix uses:\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cul style=\"block-size: 40.875px; font-family: Helvetica, Arial, sans-serif; list-style-type: square; margin-block-end: 20px; margin-block-start: 10px; margin-bottom: 20px; margin-top: 10px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 316.5px 20.4375px; transform-origin: 316.5px 20.4375px; margin-top: 10px; margin-bottom: 20px; \"\u003e\u003cli style=\"block-size: 20.4375px; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 288.5px 10.2188px; text-align: left; transform-origin: 288.5px 10.2188px; white-space-collapse: preserve; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eDots (\".\") for empty squares\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"block-size: 20.4375px; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 288.5px 10.2188px; text-align: left; transform-origin: 288.5px 10.2188px; white-space-collapse: preserve; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eLetters for pieces: \"rnbqkp\" (black pieces) and \"RNBQKP\" (white pieces)\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003c/ul\u003e\u003cdiv style=\"block-size: 42px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 21px; text-align: left; transform-origin: 309.5px 21px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eFEN notation encodes each row from top to bottom, separated by slashes (\"/\"). Consecutive empty squares are replaced by their count (1-8).\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 273.667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 136.833px; text-align: left; transform-origin: 309.5px 136.833px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cimg class=\"imageNode\" width=\"266\" height=\"268\" style=\"vertical-align: baseline;width: 266px;height: 268px\" src=\"data:image/png;base64,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\" data-image-state=\"image-loaded\"\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.5px; text-align: left; transform-origin: 309.5px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003eExample 1\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.5px; text-align: left; transform-origin: 309.5px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eStarting position:\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.6667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.8333px; text-align: left; transform-origin: 309.5px 10.8333px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003einput = [ ...\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.6667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.8333px; text-align: left; transform-origin: 309.5px 10.8333px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e    \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003e'rnbqkbnr'\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.6667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.8333px; text-align: left; transform-origin: 309.5px 10.8333px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e    \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003e'pppppppp'\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.6667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.8333px; text-align: left; transform-origin: 309.5px 10.8333px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e    \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003e'........'\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.6667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.8333px; text-align: left; transform-origin: 309.5px 10.8333px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e    \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003e'........'\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.6667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.8333px; text-align: left; transform-origin: 309.5px 10.8333px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e    \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003e'........'\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.6667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.8333px; text-align: left; transform-origin: 309.5px 10.8333px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e    \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003e'........'\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.6667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.8333px; text-align: left; transform-origin: 309.5px 10.8333px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e    \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003e'PPPPPPPP'\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.6667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.8333px; text-align: left; transform-origin: 309.5px 10.8333px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e    \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003e'RNBQKBNR']\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.6667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.8333px; text-align: left; transform-origin: 309.5px 10.8333px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003eoutput =\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.6667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.8333px; text-align: left; transform-origin: 309.5px 10.8333px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003e  'rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR'\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.5px; text-align: left; transform-origin: 309.5px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003eExample 2\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.5px; text-align: left; transform-origin: 309.5px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eAfter white plays e4:\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.6667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.8333px; text-align: left; transform-origin: 309.5px 10.8333px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003einput = [ ...\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.6667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.8333px; text-align: left; transform-origin: 309.5px 10.8333px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e    \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003e'rnbqkbnr'\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.6667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.8333px; text-align: left; transform-origin: 309.5px 10.8333px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e    \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003e'pppppppp'\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.6667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.8333px; text-align: left; transform-origin: 309.5px 10.8333px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e    \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003e'........'\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.6667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.8333px; text-align: left; transform-origin: 309.5px 10.8333px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e    \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003e'........'\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.6667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.8333px; text-align: left; transform-origin: 309.5px 10.8333px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e    \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003e'....P...'\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.6667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.8333px; text-align: left; transform-origin: 309.5px 10.8333px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e    \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003e'........'\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.6667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.8333px; text-align: left; transform-origin: 309.5px 10.8333px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e    \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003e'PPPP.PPP'\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.6667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.8333px; text-align: left; transform-origin: 309.5px 10.8333px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e    \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003e'RNBQKBNR']\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.6667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.8333px; text-align: left; transform-origin: 309.5px 10.8333px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003eoutput =\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.6667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.8333px; text-align: left; transform-origin: 309.5px 10.8333px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003e  'rnbqkbnr/pppppppp/8/8/4P3/8/PPPP1PPP/RNBQKBNR'\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.5px; text-align: left; transform-origin: 309.5px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.5px; text-align: left; transform-origin: 309.5px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eNote: Empty squares before the P are \"4\", the P itself, then \"3\" empty squares after.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e","function_template":"function fen = fenNotation(board)\r\n  fen = '';\r\nend\r\n","test_suite":"%% Test 1: Starting position\r\nboard = ['rnbqkbnr';\r\n         'pppppppp';\r\n         '........';\r\n         '........';\r\n         '........';\r\n         '........';\r\n         'PPPPPPPP';\r\n         'RNBQKBNR'];\r\nassert(isequal(fenNotation(board), 'rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR'))\r\n\r\n%% Test 2: After 1.e4\r\nboard = ['rnbqkbnr';\r\n         'pppppppp';\r\n         '........';\r\n         '........';\r\n         '....P...';\r\n         '........';\r\n         'PPPP.PPP';\r\n         'RNBQKBNR'];\r\nassert(isequal(fenNotation(board), 'rnbqkbnr/pppppppp/8/8/4P3/8/PPPP1PPP/RNBQKBNR'))\r\n\r\n%% Test 3: After 1.e4 c5\r\nboard = ['rnbqkbnr';\r\n         'pp.ppppp';\r\n         '........';\r\n         '..p.....';\r\n         '....P...';\r\n         '........';\r\n         'PPPP.PPP';\r\n         'RNBQKBNR'];\r\nassert(isequal(fenNotation(board), 'rnbqkbnr/pp1ppppp/8/2p5/4P3/8/PPPP1PPP/RNBQKBNR'))\r\n\r\n%% Test 4: After 1.e4 c5 2.Nf3\r\nboard = ['rnbqkbnr';\r\n         'pp.ppppp';\r\n         '........';\r\n         '..p.....';\r\n         '....P...';\r\n         '.....N..';\r\n         'PPPP.PPP';\r\n         'RNBQKB.R'];\r\nassert(isequal(fenNotation(board), 'rnbqkbnr/pp1ppppp/8/2p5/4P3/5N2/PPPP1PPP/RNBQKB1R'))\r\n\r\n%% Test 5: Complex middle game position\r\nboard = ['r.bk...r';\r\n         'p..pBpNp';\r\n         'n....n..';\r\n         '.p.NP..P';\r\n         '......P.';\r\n         '...P....';\r\n         'P.P.K...';\r\n         'q.....b.'];\r\nassert(isequal(fenNotation(board), 'r1bk3r/p2pBpNp/n4n2/1p1NP2P/6P1/3P4/P1P1K3/q5b1'))\r\n\r\n%% Test 6: Empty board\r\nboard = ['........';\r\n         '........';\r\n         '........';\r\n         '........';\r\n         '........';\r\n         '........';\r\n         '........';\r\n         '........'];\r\nassert(isequal(fenNotation(board), '8/8/8/8/8/8/8/8'))\r\n\r\n%% Test 7: Only kings\r\nboard = ['....k...';\r\n         '........';\r\n         '........';\r\n         '........';\r\n         '........';\r\n         '........';\r\n         '........';\r\n         '....K...'];\r\nassert(isequal(fenNotation(board), '4k3/8/8/8/8/8/8/4K3'))\r\n\r\n%% Test 8: Single piece per row\r\nboard = ['r.......';\r\n         '.n......';\r\n         '..b.....';\r\n         '...q....';\r\n         '....k...';\r\n         '.....B..';\r\n         '......N.';\r\n         '.......R'];\r\nassert(isequal(fenNotation(board), 'r7/1n6/2b5/3q4/4k3/5B2/6N1/7R'))\r\n\r\n%% Test 9: Alternating pieces and spaces\r\nboard = ['r.r.r.r.';\r\n         '.p.p.p.p';\r\n         'n.n.n.n.';\r\n         '.b.b.b.b';\r\n         'B.B.B.B.';\r\n         '.N.N.N.N';\r\n         'P.P.P.P.';\r\n         '.R.R.R.R'];\r\nassert(isequal(fenNotation(board), 'r1r1r1r1/1p1p1p1p/n1n1n1n1/1b1b1b1b/B1B1B1B1/1N1N1N1N/P1P1P1P1/1R1R1R1R'))\r\n\r\n%% Test 10: All pawns\r\nboard = ['pppppppp';\r\n         'pppppppp';\r\n         'pppppppp';\r\n         'pppppppp';\r\n         'PPPPPPPP';\r\n         'PPPPPPPP';\r\n         'PPPPPPPP';\r\n         'PPPPPPPP'];\r\nassert(isequal(fenNotation(board), 'pppppppp/pppppppp/pppppppp/pppppppp/PPPPPPPP/PPPPPPPP/PPPPPPPP/PPPPPPPP'))\r\n\r\n%% Test 11: After 1.d4 Nf6 2.c4 e6\r\nboard = ['rnbqkb.r';\r\n         'pppp.ppp';\r\n         '....pn..';\r\n         '........';\r\n         '..PP....';\r\n         '........';\r\n         'PP..PPPP';\r\n         'RNBQKBNR'];\r\nassert(isequal(fenNotation(board), 'rnbqkb1r/pppp1ppp/4pn2/8/2PP4/8/PP2PPPP/RNBQKBNR'))\r\n\r\n%% Test 12: After 1.e4 e5 2.Nf3 Nc6 3.Bb5\r\nboard = ['r.bqkbnr';\r\n         'pppp.ppp';\r\n         '..n.....';\r\n         '.B..p...';\r\n         '....P...';\r\n         '.....N..';\r\n         'PPPP.PPP';\r\n         'RNBQK..R'];\r\nassert(isequal(fenNotation(board), 'r1bqkbnr/pppp1ppp/2n5/1B2p3/4P3/5N2/PPPP1PPP/RNBQK2R'))\r\n\r\n%% Test 13: Endgame - King and pawns\r\nboard = ['........';\r\n         '...k....';\r\n         '..p.p...';\r\n         '........';\r\n         '........';\r\n         '..P.P...';\r\n         '...K....';\r\n         '........'];\r\nassert(isequal(fenNotation(board), '8/3k4/2p1p3/8/8/2P1P3/3K4/8'))\r\n\r\n%% Test 14: All pieces on first rank\r\nboard = ['rnbqkbnr';\r\n         '........';\r\n         '........';\r\n         '........';\r\n         '........';\r\n         '........';\r\n         '........';\r\n         'RNBQKBNR'];\r\nassert(isequal(fenNotation(board), 'rnbqkbnr/8/8/8/8/8/8/RNBQKBNR'))\r\n\r\n%% Test 15: Pieces at edges\r\nboard = ['r......r';\r\n         'p......p';\r\n         '........';\r\n         '........';\r\n         '........';\r\n         '........';\r\n         'P......P';\r\n         'R......R'];\r\nassert(isequal(fenNotation(board), 'r6r/p6p/8/8/8/8/P6P/R6R'))\r\n\r\n%% Test 16: After 1.Nf3 Nf6 2.g3 g6\r\nboard = ['rnbqkb.r';\r\n         'pppppp.p';\r\n         '.....np.';\r\n         '........';\r\n         '........';\r\n         '.....NP.';\r\n         'PPPPPP.P';\r\n         'RNBQKB.R'];\r\nassert(isequal(fenNotation(board), 'rnbqkb1r/pppppp1p/5np1/8/8/5NP1/PPPPPP1P/RNBQKB1R'))\r\n\r\n%% Test 17: Queen's Gambit Declined\r\nboard = ['rnbqkb.r';\r\n         'ppp..ppp';\r\n         '....pn..';\r\n         '...p....';\r\n         '..PP....';\r\n         '..N.....';\r\n         'PP..PPPP';\r\n         'R.BQKBNR'];\r\nassert(isequal(fenNotation(board), 'rnbqkb1r/ppp2ppp/4pn2/3p4/2PP4/2N5/PP2PPPP/R1BQKBNR'))\r\n\r\n%% Test 18: Scattered position\r\nboard = ['...q....';\r\n         '........';\r\n         '.k....n.';\r\n         '........';\r\n         '.....P..';\r\n         '..N.....';\r\n         '........';\r\n         '...Q.K..'];\r\nassert(isequal(fenNotation(board), '3q4/8/1k4n1/8/5P2/2N5/8/3Q1K2'))\r\n\r\n%% Test 19: Dense position\r\nboard = ['rnbqkbnr';\r\n         'pppppppp';\r\n         '..N.....';\r\n         '........';\r\n         '........';\r\n         '........';\r\n         'PPPPPPPP';\r\n         'R.BQKBNR'];\r\nassert(isequal(fenNotation(board), 'rnbqkbnr/pppppppp/2N5/8/8/8/PPPPPPPP/R1BQKBNR'))\r\n\r\n%% Test 20: Single empty squares between pieces\r\nboard = ['r.b.k.b.';\r\n         'p.p.p.p.';\r\n         '.n.q.n.r';\r\n         '........';\r\n         '........';\r\n         '.N.Q.N.R';\r\n         'P.P.P.P.';\r\n         'R.B.K.B.'];\r\nassert(isequal(fenNotation(board), 'r1b1k1b1/p1p1p1p1/1n1q1n1r/8/8/1N1Q1N1R/P1P1P1P1/R1B1K1B1'))\r\n","published":true,"deleted":false,"likes_count":0,"comments_count":0,"created_by":7,"edited_by":7,"edited_at":"2026-01-08T15:31:59.000Z","deleted_by":null,"deleted_at":null,"solvers_count":8,"test_suite_updated_at":"2025-12-24T20:06:01.000Z","rescore_all_solutions":false,"group_id":1,"created_at":"2025-12-24T19:24:48.000Z","updated_at":"2026-02-26T10:51:57.000Z","published_at":"2025-12-24T20:06:01.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eNote: This problem is the reverse, or complement, of\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=\\\"https://www.mathworks.com/matlabcentral/cody/problems/61155-fen-to-chess-board\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eProblem 61155 - FEN to Chess Board\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\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\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eGiven an 8-by-8 character matrix representing a chess board, convert it to FEN (\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://en.wikipedia.org/wiki/Forsyth%E2%80%93Edwards_Notation\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eForsyth-Edwards Notation\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e) board position format.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe input matrix uses:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eDots (\\\".\\\") for empty squares\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eLetters for pieces: \\\"rnbqkp\\\" (black pieces) and \\\"RNBQKP\\\" (white pieces)\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\u003eFEN notation encodes each row from top to bottom, separated by slashes (\\\"/\\\"). Consecutive empty squares are replaced by their count (1-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\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:customXml w:element=\\\"image\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"height\\\" w:val=\\\"268\\\"/\u003e\u003cw:attr w:name=\\\"width\\\" w:val=\\\"266\\\"/\u003e\u003cw:attr w:name=\\\"verticalAlign\\\" w:val=\\\"baseline\\\"/\u003e\u003cw:attr w:name=\\\"altText\\\" w:val=\\\"\\\"/\u003e\u003cw:attr w:name=\\\"relationshipId\\\" w:val=\\\"rId1\\\"/\u003e\u003c/w:customXmlPr\u003e\u003c/w:customXml\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eExample 1\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\u003eStarting position:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003einput = [ ...\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e    \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e'rnbqkbnr'\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e    \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e'pppppppp'\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e    \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\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\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e    \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\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\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e    \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\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\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e    \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\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\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e    \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e'PPPPPPPP'\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e    \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e'RNBQKBNR']\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eoutput =\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e  'rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR'\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eExample 2\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\u003eAfter white plays e4:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003einput = [ ...\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e    \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e'rnbqkbnr'\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e    \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e'pppppppp'\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e    \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\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\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e    \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\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\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e    \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e'....P...'\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e    \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\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\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e    \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e'PPPP.PPP'\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e    \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e'RNBQKBNR']\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eoutput =\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e  'rnbqkbnr/pppppppp/8/8/4P3/8/PPPP1PPP/RNBQKBNR'\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\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\u003eNote: Empty squares before the P are \\\"4\\\", the P itself, then \\\"3\\\" empty squares after.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\",\"relationship\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/image\",\"target\":\"/media/image1.png\",\"relationshipId\":\"rId1\"}]},{\"partUri\":\"/media/image1.png\",\"contentType\":\"image/png\",\"content\":\"data:image/png;base64,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\",\"relationship\":null}],\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"target\":\"/matlab/document.xml\",\"relationshipId\":\"rId1\"}]}"},{"id":45282,"title":"Cryptography with A Square Matrix : Decoding","description":"Previous Problem: Cryptography with A Square Matrix : Encoding\r\nNow decode a double vector to a (hopefully!) meaningful text.\r\nInputs are encoded vector and key matrix.\r\n   encodedVector = [1665 1624 1541 1549 1495 1501 486 510 534 1503 1552 1595 1192 747 836]\r\n\r\n   key = magic(3);\r\ninverse of key\r\n   inverseKey = [0.147222222222222 -0.144444444444444 0.0638888888888889\r\n               -0.0611111111111111 0.0222222222222222 0.105555555555556\r\n               -0.0194444444444445 0.188888888888889 -0.102777777777778];\r\nReshape encodedVector so it has the same number of rows with key\r\n   reshapedVector = [1665 1549 486 1503 1192;\r\n                     1624 1495 510 1552 747;\r\n                     1541 1501 534 1595 836];\r\nMultiply inverseKey and reshapedVector, round it and reshape it;\r\n messageVector = [109 97 116 108 97 98 32 38 32 99 111 100 121 32 32];\r\nchar equivalent of message vector is 'matlab \u0026 cody'","description_html":"\u003cdiv style = \"text-align: start; line-height: 20.4333px; min-height: 0px; white-space: normal; color: rgb(0, 0, 0); font-family: Menlo, Monaco, Consolas, monospace; font-style: normal; font-size: 14px; font-weight: 400; text-decoration: rgb(0, 0, 0); white-space: normal; \"\u003e\u003cdiv style=\"block-size: 449.333px; display: block; min-width: 0px; padding-block-start: 0px; padding-top: 0px; perspective-origin: 407px 224.667px; transform-origin: 407px 224.667px; vertical-align: baseline; \"\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 57.5px 8px; transform-origin: 57.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003ePrevious Problem:\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 2px 8px; transform-origin: 2px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e \u003c/span\u003e\u003c/span\u003e\u003ca target='_blank' href = \"https://www.mathworks.com/matlabcentral/cody/problems/45279-cryptography-with-a-square-matrix-encoding\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"\"\u003eCryptography with A Square Matrix : Encoding\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 193px 8px; transform-origin: 193px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eNow decode a double vector to a (hopefully!) meaningful text.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 31.5px 8px; transform-origin: 31.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eInputs are\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 2px 8px; transform-origin: 2px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 56px 8px; transform-origin: 56px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003eencoded vector\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 14px 8px; transform-origin: 14px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e and\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 2px 8px; transform-origin: 2px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 12px 8px; transform-origin: 12px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003ekey\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 22.5px 8px; transform-origin: 22.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e matrix.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgb(247, 247, 247); block-size: 61.3px; border-bottom-left-radius: 4px; border-bottom-right-radius: 4px; border-end-end-radius: 4px; border-end-start-radius: 4px; border-start-end-radius: 4px; border-start-start-radius: 4px; border-top-left-radius: 4px; border-top-right-radius: 4px; margin-block-end: 10px; margin-block-start: 10px; margin-bottom: 10px; margin-inline-end: 3px; margin-inline-start: 3px; margin-left: 3px; margin-right: 3px; margin-top: 10px; perspective-origin: 404px 30.65px; transform-origin: 404px 30.65px; margin-left: 3px; margin-top: 10px; margin-bottom: 10px; margin-right: 3px; \"\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 1px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 1px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 1px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 404px 10.2167px; transform-origin: 404px 10.2167px; white-space: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 360px 8.5px; tab-size: 4; transform-origin: 360px 8.5px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e   encodedVector = [1665 1624 1541 1549 1495 1501 486 510 534 1503 1552 1595 1192 747 836]\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 1px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 1px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 1px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 404px 10.2167px; transform-origin: 404px 10.2167px; white-space: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 0px 8.5px; tab-size: 4; transform-origin: 0px 8.5px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 1px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 1px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 1px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 404px 10.2167px; transform-origin: 404px 10.2167px; white-space: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 72px 8.5px; tab-size: 4; transform-origin: 72px 8.5px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e   key = magic(3);\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 10px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 10px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 10px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 31px 8px; transform-origin: 31px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003einverse of\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 2px 8px; transform-origin: 2px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 12px 8px; transform-origin: 12px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003ekey\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgb(247, 247, 247); block-size: 61.3px; border-bottom-left-radius: 4px; border-bottom-right-radius: 4px; border-end-end-radius: 4px; border-end-start-radius: 4px; border-start-end-radius: 4px; border-start-start-radius: 4px; border-top-left-radius: 4px; border-top-right-radius: 4px; margin-block-end: 10px; margin-block-start: 10px; margin-bottom: 10px; margin-inline-end: 3px; margin-inline-start: 3px; margin-left: 3px; margin-right: 3px; margin-top: 10px; perspective-origin: 404px 30.65px; transform-origin: 404px 30.65px; margin-left: 3px; margin-top: 10px; margin-bottom: 10px; margin-right: 3px; \"\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 1px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 1px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 1px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 404px 10.2167px; transform-origin: 404px 10.2167px; white-space: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 288px 8.5px; tab-size: 4; transform-origin: 288px 8.5px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e   inverseKey = [0.147222222222222 -0.144444444444444 0.0638888888888889\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 1px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 1px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 1px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 404px 10.2167px; transform-origin: 404px 10.2167px; white-space: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 284px 8.5px; tab-size: 4; transform-origin: 284px 8.5px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e               -0.0611111111111111 0.0222222222222222 0.105555555555556\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 1px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 1px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 1px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 404px 10.2167px; transform-origin: 404px 10.2167px; white-space: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 292px 8.5px; tab-size: 4; transform-origin: 292px 8.5px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e               -0.0194444444444445 0.188888888888889 -0.102777777777778];\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 10px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 10px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 10px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 28.5px 8px; transform-origin: 28.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eReshape\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 2px 8px; transform-origin: 2px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 53.5px 8px; transform-origin: 53.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003eencodedVector\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 124px 8px; transform-origin: 124px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e so it has the same number of rows with\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 2px 8px; transform-origin: 2px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 12px 8px; transform-origin: 12px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003ekey\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgb(247, 247, 247); block-size: 61.3px; border-bottom-left-radius: 4px; border-bottom-right-radius: 4px; border-end-end-radius: 4px; border-end-start-radius: 4px; border-start-end-radius: 4px; border-start-start-radius: 4px; border-top-left-radius: 4px; border-top-right-radius: 4px; margin-block-end: 10px; margin-block-start: 10px; margin-bottom: 10px; margin-inline-end: 3px; margin-inline-start: 3px; margin-left: 3px; margin-right: 3px; margin-top: 10px; perspective-origin: 404px 30.65px; transform-origin: 404px 30.65px; margin-left: 3px; margin-top: 10px; margin-bottom: 10px; margin-right: 3px; \"\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 1px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 1px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 1px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 404px 10.2167px; transform-origin: 404px 10.2167px; white-space: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 180px 8.5px; tab-size: 4; transform-origin: 180px 8.5px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e   reshapedVector = [1665 1549 486 1503 1192;\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 1px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 1px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 1px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 404px 10.2167px; transform-origin: 404px 10.2167px; white-space: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 176px 8.5px; tab-size: 4; transform-origin: 176px 8.5px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e                     1624 1495 510 1552 747;\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 1px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 1px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 1px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 404px 10.2167px; transform-origin: 404px 10.2167px; white-space: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 180px 8.5px; tab-size: 4; transform-origin: 180px 8.5px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e                     1541 1501 534 1595 836];\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 10px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 10px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 10px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 23.5px 8px; transform-origin: 23.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eMultiply\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 2px 8px; transform-origin: 2px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 40px 8px; transform-origin: 40px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003einverseKey\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 14px 8px; transform-origin: 14px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e and\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 2px 8px; transform-origin: 2px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 56px 8px; transform-origin: 56px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003ereshapedVector\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 77.5px 8px; transform-origin: 77.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e, round it and reshape it;\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgb(247, 247, 247); block-size: 20.4333px; border-bottom-left-radius: 4px; border-bottom-right-radius: 4px; border-end-end-radius: 4px; border-end-start-radius: 4px; border-start-end-radius: 4px; border-start-start-radius: 4px; border-top-left-radius: 4px; border-top-right-radius: 4px; margin-block-end: 10px; margin-block-start: 10px; margin-bottom: 10px; margin-inline-end: 3px; margin-inline-start: 3px; margin-left: 3px; margin-right: 3px; margin-top: 10px; perspective-origin: 404px 10.2167px; transform-origin: 404px 10.2167px; margin-left: 3px; margin-top: 10px; margin-bottom: 10px; margin-right: 3px; \"\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 1px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 1px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 1px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; white-space: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 280px 8.5px; tab-size: 4; transform-origin: 280px 8.5px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e messageVector = [109 97 116 108 97 98 32 38 32 99 111 100 121 32 32];\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 10px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 10px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 10px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 165px 8px; transform-origin: 165px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003echar equivalent of message vector is 'matlab \u0026amp; cody'\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e","function_template":"function hopefullyMeaningfulText = decodeMessage(encodedVector, keyMatrix)\r\n\r\nend","test_suite":"%%\r\nencodedVector = [1665 1624 1541 1549 1495 1501 1013 1351 1221 1426 1153 886 1714 1680 1586 480 480 480];\r\nkeyMatrix = magic(3);\r\ny_correct = 'matlab and cody';\r\nassert(isequal(decodeMessage(encodedVector, keyMatrix),y_correct))\r\n\r\n%%\r\nencodedVector = [6829 6941 7028 6905 6877 6043 5432 6941 6575 6469 3236 3644 2352 2760 2828];\r\nkeyMatrix = magic(5);\r\ny_correct = 'hello world';\r\nassert(isequal(decodeMessage(encodedVector, keyMatrix),y_correct))\r\n\r\n%%\r\nencodedVector = [10923 12101 13961 10519 10823 12582 5974 11814 12207 5786 11120 11328 5574 10458 10625 10134 11738 13359 5710 10858 11017 9815 11533 13372 8501 8231 11476 10488 10848 12497 5890 11490 11781 5408 10098 10453 10858 11252 13568 10196 11470 13008 9790 10816 12582 8438 4418 6724 11085 11329 13084 10447 11693 13320 5616 10838 11359 5686 10890 11193 8802 7250 10343 11099 11859 13746 9094 7344 7717 9320 7584 7900 9299 7501 10795 9881 10711 12227 3300 4116 4898];\r\nkeyMatrix = [14 20 63; 54 46 5; 71 27 24];\r\ny_correct = 'stockout is an order that cannot be satisfied, resulting in a loss of the sale.';\r\nassert(isequal(decodeMessage(encodedVector, keyMatrix),y_correct))\r\n\r\n%%\r\nencodedVector = [12269 11674 18982 12603 13111 18355 12051 12649 17959 6268 6567 14425 12171 11931 19559 6437 6969 15532 13056 12433 19898 5997 6612 14365 13705 13052 20746 11931 12436 17537 13161 12943 21233 5903 6679 14472 13679 11112 14066 13245 12765 20292 6054 7203 15871 13495 12716 19961 11148 11975 18284 3904 3776 5984];\r\nkeyMatrix = [7 92 23; 34 77 7; 89 66 32 ];\r\ny_correct = 'dasiy is a small white flower with a yellow centre.';\r\nassert(isequal(decodeMessage(encodedVector, keyMatrix),y_correct))\r\n\r\n%%\r\nencodedVector = [11887 11494 18292 13583 12983 20497 12614 11975 19214 12529 9978 13458 11678 9327 12770 11425 9250 12418 13964 13138 20021 12986 12973 20645 13025 12806 20806 6267 6981 15454 5935 6625 14358 14067 13645 21715 13128 12874 20305 6295 7117 15810 12321 12283 19978 12114 12955 18760 12611 12631 20292 5987 7087 15540 12483 10160 13146 13880 13463 20776 12455 11733 18879 13630 13463 21169 6134 7068 15586 11995 12377 17247 13825 13363 21044 13068 12596 20311 10643 11358 16613 13548 12813 20052 11747 9495 12680 14027 13493 20760 13978 13059 20385 11816 9369 12962 13357 10720 13990 10791 11707 17391 14146 13289 20512 13630 13463 21169 11655 9467 12552 11162 12043 18462 3904 3776 5984];\r\nkeyMatrix = [7 92 23; 34 77 7; 89 66 32 ];\r\ndecodeMessage(encodedVector, keyMatrix)\r\n\r\n%%\r\nencodedVector = [23314 25294 21847 18481 14593 16573 17959 19939 21334];\r\nkeyMatrix = magic(9);\r\ndecodeMessage(encodedVector, keyMatrix)\r\n","published":true,"deleted":false,"likes_count":2,"comments_count":4,"created_by":8703,"edited_by":223089,"edited_at":"2022-12-28T13:35:31.000Z","deleted_by":null,"deleted_at":null,"solvers_count":11,"test_suite_updated_at":"2022-12-28T13:35:31.000Z","rescore_all_solutions":false,"group_id":1,"created_at":"2020-01-28T08:55:42.000Z","updated_at":"2026-04-04T02:00:06.000Z","published_at":"2020-01-28T08:56:34.000Z","restored_at":null,"restored_by":null,"spam":null,"simulink":false,"admin_reviewed":false,"description_opc":"{\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003ePrevious Problem:\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=\\\"https://www.mathworks.com/matlabcentral/cody/problems/45279-cryptography-with-a-square-matrix-encoding\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eCryptography with A Square Matrix : Encoding\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\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eNow decode a double vector to a (hopefully!) meaningful text.\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\u003eInputs are\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eencoded vector\u003c/w:t\u003e\u003c/w:r\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:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ekey\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e matrix.\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[   encodedVector = [1665 1624 1541 1549 1495 1501 486 510 534 1503 1552 1595 1192 747 836]\\n\\n   key = magic(3);]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003einverse of\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ekey\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[   inverseKey = [0.147222222222222 -0.144444444444444 0.0638888888888889\\n               -0.0611111111111111 0.0222222222222222 0.105555555555556\\n               -0.0194444444444445 0.188888888888889 -0.102777777777778];]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eReshape\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eencodedVector\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e so it has the same number of rows with\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ekey\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[   reshapedVector = [1665 1549 486 1503 1192;\\n                     1624 1495 510 1552 747;\\n                     1541 1501 534 1595 836];]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eMultiply\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003einverseKey\u003c/w:t\u003e\u003c/w:r\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:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ereshapedVector\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e, round it and reshape it;\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[ messageVector = [109 97 116 108 97 98 32 38 32 99 111 100 121 32 32];]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003echar equivalent of message vector is 'matlab \u0026amp; cody'\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\",\"relationship\":null}],\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"target\":\"/matlab/document.xml\",\"relationshipId\":\"rId1\"}]}"},{"id":2627,"title":"Convert to Binary Coded Decimal","description":"Convert from decimal representation to \u003chttp://en.wikipedia.org/wiki/Binary-coded_decimal Binary Code Decimal\u003e (or BCD) representation.\r\n\r\nExamples\r\n\r\nSo 5 becomes '0101'\r\n\r\n12 is '00010010' (because 1 is '0001' and 2 is '0010')\r\n\r\n156 is '000101010110'\r\n\r\n","description_html":"\u003cp\u003eConvert from decimal representation to \u003ca href = \"http://en.wikipedia.org/wiki/Binary-coded_decimal\"\u003eBinary Code Decimal\u003c/a\u003e (or BCD) representation.\u003c/p\u003e\u003cp\u003eExamples\u003c/p\u003e\u003cp\u003eSo 5 becomes '0101'\u003c/p\u003e\u003cp\u003e12 is '00010010' (because 1 is '0001' and 2 is '0010')\u003c/p\u003e\u003cp\u003e156 is '000101010110'\u003c/p\u003e","function_template":"function y = bin2bcd(x)\r\n  y = 'x';\r\nend","test_suite":"%%\r\nx = 1;\r\ny_correct = '0001';\r\nassert(isequal(bin2bcd(x),y_correct))\r\n%%\r\nx = 5;\r\ny_correct = '0101';\r\nassert(isequal(bin2bcd(x),y_correct))\r\n%%\r\nx = 12;\r\ny_correct = '00010010';\r\nassert(isequal(bin2bcd(x),y_correct))\r\n%%\r\nx = 156;\r\ny_correct = '000101010110';\r\nassert(isequal(bin2bcd(x),y_correct))\r\n","published":true,"deleted":false,"likes_count":5,"comments_count":0,"created_by":27760,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":152,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":45,"created_at":"2014-10-13T13:38:17.000Z","updated_at":"2026-03-11T18:20:21.000Z","published_at":"2014-10-13T13:38:17.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\u003eConvert from decimal representation to\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://en.wikipedia.org/wiki/Binary-coded_decimal\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eBinary Code Decimal\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e (or BCD) representation.\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\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\u003eSo 5 becomes '0101'\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\u003e12 is '00010010' (because 1 is '0001' and 2 is '0010')\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\u003e156 is '000101010110'\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":751,"title":"Implement simple rotation cypher","description":"If given a letter from the set:\r\n\r\n  [abc...xyz]\r\n\r\nand a shift, implement a shift cypher.\r\n\r\nExample:\r\n\r\n  'abc' \r\n\r\nwith a shift of -1 yields\r\n\r\n  'zab'\r\n\r\n\r\n\r\n\r\n","description_html":"\u003cp\u003eIf given a letter from the set:\u003c/p\u003e\u003cpre class=\"language-matlab\"\u003e[abc...xyz]\r\n\u003c/pre\u003e\u003cp\u003eand a shift, implement a shift cypher.\u003c/p\u003e\u003cp\u003eExample:\u003c/p\u003e\u003cpre class=\"language-matlab\"\u003e'abc' \r\n\u003c/pre\u003e\u003cp\u003ewith a shift of -1 yields\u003c/p\u003e\u003cpre class=\"language-matlab\"\u003e'zab'\r\n\u003c/pre\u003e","function_template":"function outStr = cypher(inStr, shift)\r\n  outStr = inStr;\r\nend","test_suite":"%%\r\ninStr = 'doug';\r\nshift = 10;\r\noutStr = 'nyeq';\r\n\r\nassert(isequal(cypher(inStr, shift),outStr))\r\n\r\n%%\r\ninStr = 'thequickbrownfox';\r\nshift = 5;\r\noutStr = 'ymjvznhpgwtbsktc';\r\n\r\nassert(isequal(cypher(inStr, shift),outStr))\r\n\r\n%%\r\ninStr = 'thecrowfliesatmidnight';\r\nshift = 22;\r\noutStr = 'pdaynksbheaowpiezjecdp';\r\n\r\nassert(isequal(cypher(inStr, shift),outStr))","published":true,"deleted":false,"likes_count":13,"comments_count":2,"created_by":240,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":1096,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":6,"created_at":"2012-06-06T15:38:43.000Z","updated_at":"2026-02-19T13:12:57.000Z","published_at":"2012-06-08T19:08:23.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\u003eIf given a letter from the set:\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[[abc...xyz]]]\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\u003eand a shift, implement a shift cypher.\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\u003eExample:\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['abc']]\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\u003ewith a shift of -1 yields\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['zab']]\u003e\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":43972,"title":"Binary code for an analog signal","description":"Digitization of a signal consists of 3 stages: sampling, quantization and encoding.\r\nSampling convert the analogue signal into pulses, quantization adjust the amplitude of the sampled signal, encoding is the process of assigning each quantised sample with a binary code.\r\nWrite a function that will return the binary code (BitCode {char matrix of size 5,6}) for 5 different voltage levels (AnalogValue{double mattrix of size 1,5}), with maximum and minimum value of (xmin, xmax).\r\nThe Number of bits will be provided as (NoBits)","description_html":"\u003cdiv style = \"text-align: start; line-height: 20.4333px; min-height: 0px; white-space: normal; color: rgb(0, 0, 0); font-family: Menlo, Monaco, Consolas, monospace; font-style: normal; font-size: 14px; font-weight: 400; text-decoration: rgb(0, 0, 0); white-space: normal; \"\u003e\u003cdiv style=\"block-size: 153px; display: block; min-width: 0px; padding-block-start: 0px; padding-top: 0px; perspective-origin: 407px 76.5px; transform-origin: 407px 76.5px; vertical-align: baseline; \"\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 254px 8px; transform-origin: 254px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eDigitization of a signal consists of 3 stages: sampling, quantization and encoding.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 42px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 21px; text-align: left; transform-origin: 384px 21px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 384px 8px; transform-origin: 384px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eSampling convert the analogue signal into pulses, quantization adjust the amplitude of the sampled signal, encoding is the process of assigning each quantised sample with a binary code.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 42px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 21px; text-align: left; transform-origin: 384px 21px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 345.5px 8px; transform-origin: 345.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eWrite a function that will return the binary code (BitCode {char matrix of size 5,6}) for 5 different voltage levels (AnalogValue{double mattrix of size 1,5}), with maximum and minimum value of (xmin, xmax).\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 147px 8px; transform-origin: 147px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThe Number of bits will be provided as (NoBits)\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e","function_template":"function BitCode = Digitization (NoBits,AnalogValue,xmin,xmax)\r\n  Bitcode = ['0''0''0''0''0''0'];\r\nend","test_suite":"%%\r\nNoBits =6;\r\nxmin = -5;\r\nxmax = 5;\r\nAnalogValue = [-2 -1 0 1 2];\r\nBitCode=['010011' ; '011010' ; '100000' ; '100110' ; '101101'];\r\nassert(isequal(Digitization(NoBits,AnalogValue,xmin,xmax),BitCode))\r\n","published":true,"deleted":false,"likes_count":1,"comments_count":0,"created_by":108527,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":15,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2016-12-28T14:31:24.000Z","updated_at":"2025-12-02T20:00:38.000Z","published_at":"2016-12-28T14:32:42.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eDigitization of a signal consists of 3 stages: sampling, quantization and encoding.\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\u003eSampling convert the analogue signal into pulses, quantization adjust the amplitude of the sampled signal, encoding is the process of assigning each quantised sample with a binary code.\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\u003eWrite a function that will return the binary code (BitCode {char matrix of size 5,6}) for 5 different voltage levels (AnalogValue{double mattrix of size 1,5}), with maximum and minimum value of (xmin, xmax).\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe Number of bits will be provided as (NoBits)\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\",\"relationship\":null}],\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"target\":\"/matlab/document.xml\",\"relationshipId\":\"rId1\"}]}"},{"id":45279,"title":"Cryptography with A Square Matrix : Encoding","description":"Matrix inverse operation can be used to encode or decode of a message. For example \r\n\r\n    text = 'matlab \u0026 cody'. \r\n\r\nnumeric equivalent is \r\n\r\n    num = [109 97 116 108 97 98 32 38 32 99 111 100 121]\r\n\r\n\r\nlet \r\n\r\n   key = magic(3);\r\n\r\n\r\n*key* is an arbitrary square matrix and its inverse is exist. \r\n\r\nreshape the vector *num* so it has the same number of rows with *key* matrix\r\n\r\n   numMatrix = [109 108 32 99 121;\r\n                 97 97 38 111 32;\r\n                116 98 32 100 32];\r\n\r\nNote that last two elements are filled with 32 which is the numeric equivalent of blank character ' '.\r\n\r\nFinally multiply *key* with *numMatrix* (and reshape it) to obtain an encoded vector.\r\n\r\n   encodedVector= [1665 1624 1541 1549 1495 1501 486 510 534 1503 1552 1595 1192 747 836]\r\n\r\nif you multiply *inverse of key* with reshaped *encodedVector* you can obtain the ascii numbers of secret message.\r\n\r\nNext Problem : \u003chttps://www.mathworks.com/matlabcentral/cody/problems/45282-cyrptography-with-a-square-matrix-decoding Cryptography with A Square Matrix : Decoding\u003e\r\n\r\nInspired from:\r\n\r\nBarnett, R.A., Ziegler, M.R. and Byleen, K.E. (2015). Finite Mathematics for Business, Economics, Life Sciences, and Social Sciences. Pearson, 13th (Global) Edition. p:245-247.","description_html":"\u003cp\u003eMatrix inverse operation can be used to encode or decode of a message. For example\u003c/p\u003e\u003cpre\u003e    text = 'matlab \u0026 cody'. \u003c/pre\u003e\u003cp\u003enumeric equivalent is\u003c/p\u003e\u003cpre\u003e    num = [109 97 116 108 97 98 32 38 32 99 111 100 121]\u003c/pre\u003e\u003cp\u003elet\u003c/p\u003e\u003cpre\u003e   key = magic(3);\u003c/pre\u003e\u003cp\u003e\u003cb\u003ekey\u003c/b\u003e is an arbitrary square matrix and its inverse is exist.\u003c/p\u003e\u003cp\u003ereshape the vector \u003cb\u003enum\u003c/b\u003e so it has the same number of rows with \u003cb\u003ekey\u003c/b\u003e matrix\u003c/p\u003e\u003cpre\u003e   numMatrix = [109 108 32 99 121;\r\n                 97 97 38 111 32;\r\n                116 98 32 100 32];\u003c/pre\u003e\u003cp\u003eNote that last two elements are filled with 32 which is the numeric equivalent of blank character ' '.\u003c/p\u003e\u003cp\u003eFinally multiply \u003cb\u003ekey\u003c/b\u003e with \u003cb\u003enumMatrix\u003c/b\u003e (and reshape it) to obtain an encoded vector.\u003c/p\u003e\u003cpre\u003e   encodedVector= [1665 1624 1541 1549 1495 1501 486 510 534 1503 1552 1595 1192 747 836]\u003c/pre\u003e\u003cp\u003eif you multiply \u003cb\u003einverse of key\u003c/b\u003e with reshaped \u003cb\u003eencodedVector\u003c/b\u003e you can obtain the ascii numbers of secret message.\u003c/p\u003e\u003cp\u003eNext Problem : \u003ca href = \"https://www.mathworks.com/matlabcentral/cody/problems/45282-cyrptography-with-a-square-matrix-decoding\"\u003eCryptography with A Square Matrix : Decoding\u003c/a\u003e\u003c/p\u003e\u003cp\u003eInspired from:\u003c/p\u003e\u003cp\u003eBarnett, R.A., Ziegler, M.R. and Byleen, K.E. (2015). Finite Mathematics for Business, Economics, Life Sciences, and Social Sciences. Pearson, 13th (Global) Edition. p:245-247.\u003c/p\u003e","function_template":"function encodedVector = encodeMessage(inputString,keyMatrix)\r\n\r\nend","test_suite":"%%\r\ninputString = 'matlab and cody';\r\nkeyMatrix = magic(3);\r\ny_correct = [1665 1624 1541 1549 1495 1501 1013 1351 1221 1426 1153 886 1714 1680 1586 480 480 480];\r\nassert(isequal(encodeMessage(inputString, keyMatrix),y_correct))\r\n\r\n%%\r\ninputString = 'matlab and cody'\r\nkeyMatrix = magic(5);\r\ny_correct = [6616 6868 6820 7017 6934 4911 6233 6245 5817 5199 5646 5344 6827 6080 6198 2080 2080 2080 2080 2080];\r\nassert(isequal(encodeMessage(inputString, keyMatrix),y_correct))\r\n\r\n%%\r\ninputString = 'Hello worlD!!';\r\nkeyMatrix = magic(3);\r\ny_correct = [1325 1477 1413 1167 1103 1495 1747 1710 1703 1130 895 1110 488 483 484];\r\nassert(isequal(encodeMessage(inputString, keyMatrix),y_correct))\r\n\r\n%%\r\ninputString = 'Hello worlD!!'\r\nkeyMatrix = magic(5);\r\ny_correct = [6285 6205 6900 6585 6525 6043 5432 6941 6575 6469 2717 2920 2243 2471 2519];\r\nassert(isequal(encodeMessage(inputString, keyMatrix),y_correct))\r\n\r\n\r\n%%\r\ninputString = 'What a wonderful day!'\r\nkeyMatrix = [41 6; 46 46];\r\ny_correct = [4191 8786 4673 9798 1894 5934 2026 6946 5211 10166 4706 9246 5286 9936 5445 10350 1912 6072 4703 10028 1545 2990];\r\nassert(isequal(encodeMessage(inputString, keyMatrix),y_correct))\r\n\r\n\r\n%%\r\ninputString = '3'\r\nkeyMatrix = [41 6; 46 46];\r\ny_correct = [2283 3818];\r\nassert(isequal(encodeMessage(inputString, keyMatrix),y_correct))\r\n\r\n","published":true,"deleted":false,"likes_count":2,"comments_count":3,"created_by":8703,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":10,"test_suite_updated_at":"2020-01-28T16:27:49.000Z","rescore_all_solutions":false,"group_id":1,"created_at":"2020-01-27T13:50:56.000Z","updated_at":"2026-04-04T01:54:32.000Z","published_at":"2020-01-28T08:56:27.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\u003eMatrix inverse operation can be used to encode or decode of a message. For example\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[    text = 'matlab \u0026 cody'.]]\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\u003enumeric equivalent is\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[    num = [109 97 116 108 97 98 32 38 32 99 111 100 121]]]\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\u003elet\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[   key = magic(3);]]\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\u003ekey\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e is an arbitrary square matrix and its inverse is exist.\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\u003ereshape the vector\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003enum\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e so it has the same number of rows with\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ekey\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e matrix\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[   numMatrix = [109 108 32 99 121;\\n                 97 97 38 111 32;\\n                116 98 32 100 32];]]\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\u003eNote that last two elements are filled with 32 which is the numeric equivalent of blank character ' '.\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\u003eFinally multiply\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ekey\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e with\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003enumMatrix\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e (and reshape it) to obtain an encoded vector.\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[   encodedVector= [1665 1624 1541 1549 1495 1501 486 510 534 1503 1552 1595 1192 747 836]]]\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\u003eif you multiply\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003einverse of key\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e with reshaped\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eencodedVector\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e you can obtain the ascii numbers of secret message.\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\u003eNext Problem :\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=\\\"https://www.mathworks.com/matlabcentral/cody/problems/45282-cyrptography-with-a-square-matrix-decoding\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eCryptography with A Square Matrix : Decoding\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\u003eInspired from:\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\u003eBarnett, R.A., Ziegler, M.R. and Byleen, K.E. (2015). Finite Mathematics for Business, Economics, Life Sciences, and Social Sciences. Pearson, 13th (Global) Edition. p:245-247.\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":40,"title":"Reverse Run-Length Encoder","description":"Given a \"counting sequence\" vector x, construct the original sequence y.\n\nA counting sequence is formed by \"counting\" the entries in a given sequence. This is sometimes called run-length encoding.\n\nFor example, the sequence\n\n x = 2, 5, 1, 2, 4, 1, 1, 3\n\ncan be read as\n\n Two 5's, one 2, four 1's, one 3\n\nwhich translates to\n\n y = 5, 5, 2, 1, 1, 1, 1, 3\n\nSo y is the reconstructed vector that corresponds to the counting sequence x.\n\nFor this problem, all elements in the sequences x and y will be in the range from 1 to 9.","description_html":"\u003cp\u003eGiven a \"counting sequence\" vector x, construct the original sequence y.\u003c/p\u003e\u003cp\u003eA counting sequence is formed by \"counting\" the entries in a given sequence. This is sometimes called run-length encoding.\u003c/p\u003e\u003cp\u003eFor example, the sequence\u003c/p\u003e\u003cpre\u003e x = 2, 5, 1, 2, 4, 1, 1, 3\u003c/pre\u003e\u003cp\u003ecan be read as\u003c/p\u003e\u003cpre\u003e Two 5's, one 2, four 1's, one 3\u003c/pre\u003e\u003cp\u003ewhich translates to\u003c/p\u003e\u003cpre\u003e y = 5, 5, 2, 1, 1, 1, 1, 3\u003c/pre\u003e\u003cp\u003eSo y is the reconstructed vector that corresponds to the counting sequence x.\u003c/p\u003e\u003cp\u003eFor this problem, all elements in the sequences x and y will be in the range from 1 to 9.\u003c/p\u003e","function_template":"function y = RevCountSeq(x)\n  y = x;\nend","test_suite":"%%\nx = [2 5 1 2 4 1 1 3];\ncorrect = [5 5 2 1 1 1 1 3];\nassert(isequal(correct, RevCountSeq(x)));\n\n\n%%\nx = [1 9];\ncorrect = [9];\nassert(isequal(correct, RevCountSeq(x)));\n\n\n%%\nx = [9 1];\ncorrect = ones(1,9);\nassert(isequal(correct, RevCountSeq(x)));\n\n\n%%\nx = [1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9];\ncorrect = 1:9;\nassert(isequal(correct, RevCountSeq(x)));","published":true,"deleted":false,"likes_count":19,"comments_count":5,"created_by":1,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":2720,"test_suite_updated_at":"2012-01-18T01:00:22.000Z","rescore_all_solutions":false,"group_id":2,"created_at":"2012-01-18T01:00:22.000Z","updated_at":"2026-03-03T18:38:55.000Z","published_at":"2012-01-18T01:00:22.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\u003eGiven a \\\"counting sequence\\\" vector x, construct the original sequence y.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eA counting sequence is formed by \\\"counting\\\" the entries in a given sequence. This is sometimes called run-length encoding.\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\u003eFor example, the sequence\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[ x = 2, 5, 1, 2, 4, 1, 1, 3]]\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\u003ecan be read as\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[ Two 5's, one 2, four 1's, one 3]]\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\u003ewhich translates to\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[ y = 5, 5, 2, 1, 1, 1, 1, 3]]\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 y is the reconstructed vector that corresponds to the counting sequence x.\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\u003eFor this problem, all elements in the sequences x and y will be in the range from 1 to 9.\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":42283,"title":"Look and say Conway's sequence","description":"In mathematics, the look-and-say sequence is the sequence of integers beginning as follows:\r\n\r\n1, 11, 21, 1211, 111221, 312211, 13112221, 1113213211, ... (sequence A005150 in OEIS).\r\nTo generate a member of the sequence from the previous member, read off the digits of the previous member, counting the number of digits in groups of the same digit. For example:\r\n\r\n* 1 is read off as \"one 1\" or 11.\r\n* 11 is read off as \"two 1s\" or 21\r\n* 21 is read off as \"one 2, then one 1\" or 1211\r\n* 1211 is read off as \"one 1, then one 2, then two 1s\" or 111221\r\n* 111221 is read off as \"three 1s, then two 2s, then one 1\" or 312211.\r\n\r\nThe look-and-say sequence was introduced and analyzed by John Conway.\r\n\r\nSo, starting from a seed and a length, the output is a nx1 cell array of strings containing the Conway's sequence.","description_html":"\u003cp\u003eIn mathematics, the look-and-say sequence is the sequence of integers beginning as follows:\u003c/p\u003e\u003cp\u003e1, 11, 21, 1211, 111221, 312211, 13112221, 1113213211, ... (sequence A005150 in OEIS).\r\nTo generate a member of the sequence from the previous member, read off the digits of the previous member, counting the number of digits in groups of the same digit. For example:\u003c/p\u003e\u003cul\u003e\u003cli\u003e1 is read off as \"one 1\" or 11.\u003c/li\u003e\u003cli\u003e11 is read off as \"two 1s\" or 21\u003c/li\u003e\u003cli\u003e21 is read off as \"one 2, then one 1\" or 1211\u003c/li\u003e\u003cli\u003e1211 is read off as \"one 1, then one 2, then two 1s\" or 111221\u003c/li\u003e\u003cli\u003e111221 is read off as \"three 1s, then two 2s, then one 1\" or 312211.\u003c/li\u003e\u003c/ul\u003e\u003cp\u003eThe look-and-say sequence was introduced and analyzed by John Conway.\u003c/p\u003e\u003cp\u003eSo, starting from a seed and a length, the output is a nx1 cell array of strings containing the Conway's sequence.\u003c/p\u003e","function_template":"function serie=lasnumber(seed,n)\r\n  serie = x;\r\nend","test_suite":"%%\r\nseed = 1; n=5;\r\ny_correct = {'1';'11';'21';'1211';'111221'};\r\nassert(isequal(lasnumber(seed,n),y_correct))\r\n\r\n%%\r\nseed = 4; n=10;\r\ny_correct = {'4';'14';'1114';'3114';'132114';'1113122114';'311311222114';'13211321322114';'1113122113121113222114';'31131122211311123113322114'};\r\nassert(isequal(lasnumber(seed,n),y_correct))\r\n\r\n%%\r\nseed = 22; n=5;\r\ny_correct = {'22';'22';'22';'22';'22'}\r\nassert(isequal(lasnumber(seed,n),y_correct))","published":true,"deleted":false,"likes_count":4,"comments_count":0,"created_by":894,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":29,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2015-04-27T15:46:47.000Z","updated_at":"2026-03-03T19:41:36.000Z","published_at":"2015-04-27T15:46:55.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\u003eIn mathematics, the look-and-say sequence is the sequence of integers beginning as follows:\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, 11, 21, 1211, 111221, 312211, 13112221, 1113213211, ... (sequence A005150 in OEIS). To generate a member of the sequence from the previous member, read off the digits of the previous member, counting the number of digits in groups of the same digit. For example:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e1 is read off as \\\"one 1\\\" or 11.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e11 is read off as \\\"two 1s\\\" or 21\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e21 is read off as \\\"one 2, then one 1\\\" or 1211\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e1211 is read off as \\\"one 1, then one 2, then two 1s\\\" or 111221\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e111221 is read off as \\\"three 1s, then two 2s, then one 1\\\" or 312211.\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 look-and-say sequence was introduced and analyzed by John Conway.\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, starting from a seed and a length, the output is a nx1 cell array of strings containing the Conway's sequence.\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":227,"title":"Math with Roman Numerals","description":"Given a function R within (+,-,*,/) and two Roman numerals a \u0026 b, compute aRb in Roman numerals.","description_html":"\u003cp\u003eGiven a function R within (+,-,*,/) and two Roman numerals a \u0026 b, compute aRb in Roman numerals.\u003c/p\u003e","function_template":"function y = numeri_romani(fcn,nbA,nbB)\r\n  y = (fcn,nbA,nbB);\r\nend","test_suite":"%%\r\nassert(isequal(numeri_romani('+','I','I'),'II'))\r\n\r\n%%\r\nassert(isequal(numeri_romani('-','X','I'),'IX'))\r\n\r\n%%\r\nassert(isequal(numeri_romani('*','X','X'),'C'))\r\n\r\n%%\r\nassert(isequal(numeri_romani('+',numeri_romani('*','XXV','XX'),numeri_romani('+','IV','V')),'DIX'))\r\n","published":true,"deleted":false,"likes_count":1,"comments_count":0,"created_by":659,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":99,"test_suite_updated_at":"2014-10-14T14:24:43.000Z","rescore_all_solutions":false,"group_id":38,"created_at":"2012-02-02T09:52:13.000Z","updated_at":"2026-03-31T17:43:38.000Z","published_at":"2012-02-02T09:52:13.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\u003eGiven a function R within (+,-,*,/) and two Roman numerals a \u0026amp; b, compute aRb in Roman numerals.\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":78,"title":"Implement a ROT13 cipher","description":"Replace each character in string s1 with the character that is shifted 13 positions from it (wrap back to the beginning if necessary). So A ? N, B ? O, and so on until Y ? L and Z ? M. Case of the output should match the case of the input, so a ? n. Non-alphabetic characters are left in place and untouched.\n\nIf\n\n s1 = 'I love MATLAB'\n\nthen\n\n s2 = 'V ybir ZNGYNO'\n\nSee the \u003chttp://en.wikipedia.org/wiki/ROT13 Wikipedia article\u003e for more info.","description_html":"\u003cp\u003eReplace each character in string s1 with the character that is shifted 13 positions from it (wrap back to the beginning if necessary). So A ? N, B ? O, and so on until Y ? L and Z ? M. Case of the output should match the case of the input, so a ? n. Non-alphabetic characters are left in place and untouched.\u003c/p\u003e\u003cp\u003eIf\u003c/p\u003e\u003cpre\u003e s1 = 'I love MATLAB'\u003c/pre\u003e\u003cp\u003ethen\u003c/p\u003e\u003cpre\u003e s2 = 'V ybir ZNGYNO'\u003c/pre\u003e\u003cp\u003eSee the \u003ca href=\"http://en.wikipedia.org/wiki/ROT13\"\u003eWikipedia article\u003c/a\u003e for more info.\u003c/p\u003e","function_template":"function s2 = rot13(s1)\n  s2 = s1;\nend","test_suite":"%% Test #1\n\ns1 = 'I love MATLAB';\ns2_correct = 'V ybir ZNGYNO';\nassert(isequal(rot13(s1),s2_correct))\n\n%% Test #2\n\ns1 = 'I \u003c3 MATLAB!!';\ns2_correct = 'V \u003c3 ZNGYNO!!';\nassert(isequal(rot13(s1),s2_correct))\n\n%% Test #3\n\ns1 = 'The quick fox stumbled over the confusing instructions.';\ns2_correct = 'Gur dhvpx sbk fghzoyrq bire gur pbashfvat vafgehpgvbaf.';\nassert(isequal(rot13(s1),s2_correct))\n\n%% Test #4\n\ns1 = 'Snape kills Dumbledore on page 606. Also, there is no Santa.';\ns2_correct = 'Fancr xvyyf Qhzoyrqber ba cntr 606. Nyfb, gurer vf ab Fnagn.';\nassert(isequal(rot13(s1),s2_correct))\n\n","published":true,"deleted":false,"likes_count":13,"comments_count":3,"created_by":1,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":1713,"test_suite_updated_at":"2012-01-18T01:00:28.000Z","rescore_all_solutions":false,"group_id":2,"created_at":"2012-01-18T01:00:28.000Z","updated_at":"2026-01-06T04:39:32.000Z","published_at":"2012-01-18T01:00:28.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\u003eReplace each character in string s1 with the character that is shifted 13 positions from it (wrap back to the beginning if necessary). So A ? N, B ? O, and so on until Y ? L and Z ? M. Case of the output should match the case of the input, so a ? n. Non-alphabetic characters are left in place and untouched.\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\u003eIf\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[ s1 = 'I love MATLAB']]\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\u003ethen\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[ s2 = 'V ybir ZNGYNO']]\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\u003eSee the\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"http://en.wikipedia.org/wiki/ROT13\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eWikipedia article\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e for more info.\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":1288,"title":"Balanced Ternary Numbers: Easy as |, |-, |o","description":"This problem concerns the so-called \u003chttp://en.wikipedia.org/wiki/Balanced_ternary balanced ternary\u003e system for representing numbers. It is a Base 3 system in which the digits can be 1, 0, or -1. \r\n\r\nIn balanced ternary, the number 8 would be represented as 9 (or 3^2) minus 1 (or 3^0). Typographically we will use \"|\" for one, \"o\" for zero (that's a lower-case O), and \"-\" for negative one. So if the decimal input d is the number 8, the balanced ternary output is the string \"|o-\". Thus\r\n \r\n dec 8  =\u003e bt \"|o-\"\r\n\r\nHere are some more examples.\r\n\r\n dec 3  =\u003e bt \"|o\"\r\n dec 15 =\u003e bt \"|--o\"\r\n dec 52 =\u003e bt \"|-o-|\"\r\n \r\nGiven an integer d, return the string bt. Leading zeros should always be suppressed.","description_html":"\u003cp\u003eThis problem concerns the so-called \u003ca href = \"http://en.wikipedia.org/wiki/Balanced_ternary\"\u003ebalanced ternary\u003c/a\u003e system for representing numbers. It is a Base 3 system in which the digits can be 1, 0, or -1.\u003c/p\u003e\u003cp\u003eIn balanced ternary, the number 8 would be represented as 9 (or 3^2) minus 1 (or 3^0). Typographically we will use \"|\" for one, \"o\" for zero (that's a lower-case O), and \"-\" for negative one. So if the decimal input d is the number 8, the balanced ternary output is the string \"|o-\". Thus\u003c/p\u003e\u003cpre\u003e dec 8  =\u003e bt \"|o-\"\u003c/pre\u003e\u003cp\u003eHere are some more examples.\u003c/p\u003e\u003cpre\u003e dec 3  =\u003e bt \"|o\"\r\n dec 15 =\u003e bt \"|--o\"\r\n dec 52 =\u003e bt \"|-o-|\"\u003c/pre\u003e\u003cp\u003eGiven an integer d, return the string bt. Leading zeros should always be suppressed.\u003c/p\u003e","function_template":"function bt = balanced_ternary(d)\r\n  bt = 'o';\r\nend","test_suite":"%%\r\nd = 3;\r\nbt_correct = '|o';\r\nbt = balanced_ternary(d);\r\nassert(isequal(bt,bt_correct))\r\n\r\n%%\r\nd = 52;\r\nbt_correct = '|-o-|';\r\nbt = balanced_ternary(d);\r\nassert(isequal(bt,bt_correct))\r\n\r\n%%\r\nd = 182;\r\nbt_correct = '|-|-|-';\r\nbt = balanced_ternary(d);\r\nassert(isequal(bt,bt_correct))\r\n\r\n%%\r\nd = 26;\r\nbt_correct = '|oo-';\r\nbt = balanced_ternary(d);\r\nassert(isequal(bt,bt_correct))\r\n\r\n%%\r\nd = -5;\r\nbt_correct = '-||';\r\nbt = balanced_ternary(d);\r\nassert(isequal(bt,bt_correct))\r\n\r\n%%\r\nd = -164;\r\nbt_correct = '-|oo-|';\r\nbt = balanced_ternary(d);\r\nassert(isequal(bt,bt_correct))\r\n\r\n%%\r\nd = 512;\r\nbt_correct = '|-o|oo-';\r\nbt = balanced_ternary(d);\r\nassert(isequal(bt,bt_correct))\r\n\r\n","published":true,"deleted":false,"likes_count":3,"comments_count":1,"created_by":7,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":74,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2013-02-21T23:26:14.000Z","updated_at":"2026-04-03T19:20:00.000Z","published_at":"2013-02-21T23:36:53.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\u003eThis problem concerns the so-called\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://en.wikipedia.org/wiki/Balanced_ternary\\\"\u003e\u003cw:r\u003e\u003cw:t\u003ebalanced ternary\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e system for representing numbers. It is a Base 3 system in which the digits can be 1, 0, or -1.\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\u003eIn balanced ternary, the number 8 would be represented as 9 (or 3^2) minus 1 (or 3^0). Typographically we will use \\\"|\\\" for one, \\\"o\\\" for zero (that's a lower-case O), and \\\"-\\\" for negative one. So if the decimal input d is the number 8, the balanced ternary output is the string \\\"|o-\\\". Thus\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[ dec 8  =\u003e bt \\\"|o-\\\"]]\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\u003eHere are some more examples.\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[ dec 3  =\u003e bt \\\"|o\\\"\\n dec 15 =\u003e bt \\\"|--o\\\"\\n dec 52 =\u003e bt \\\"|-o-|\\\"]]\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\u003eGiven an integer d, return the string bt. Leading zeros should always be suppressed.\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":55,"title":"Counting Sequence","description":"Given a vector x, find the \"counting sequence\" y.\r\n\r\nA counting sequence is formed by \"counting\" the entries in a given sequence.\r\n\r\nFor example, the sequence\r\n\r\n x = 5, 5, 2, 1, 1, 1, 1, 3\r\n\r\ncan be read as\r\n\r\n Two 5's, one 2, four 1's, one 3\r\n\r\nwhich translates to\r\n\r\n y = 2, 5, 1, 2, 4, 1, 1, 3\r\n\r\nSo y is the counting sequence for x.\r\n\r\nFor this problem, all elements in the sequences x and y will be in the range from 1 to 9.\r\n","description_html":"\u003cp\u003eGiven a vector x, find the \"counting sequence\" y.\u003c/p\u003e\u003cp\u003eA counting sequence is formed by \"counting\" the entries in a given sequence.\u003c/p\u003e\u003cp\u003eFor example, the sequence\u003c/p\u003e\u003cpre\u003e x = 5, 5, 2, 1, 1, 1, 1, 3\u003c/pre\u003e\u003cp\u003ecan be read as\u003c/p\u003e\u003cpre\u003e Two 5's, one 2, four 1's, one 3\u003c/pre\u003e\u003cp\u003ewhich translates to\u003c/p\u003e\u003cpre\u003e y = 2, 5, 1, 2, 4, 1, 1, 3\u003c/pre\u003e\u003cp\u003eSo y is the counting sequence for x.\u003c/p\u003e\u003cp\u003eFor this problem, all elements in the sequences x and y will be in the range from 1 to 9.\u003c/p\u003e","function_template":"function y = CountSeq(x)\r\ny = x;\r\nend","test_suite":"%%\r\nx = [5 5 2 1 1 1 1 3];\r\ncorrect = [2 5 1 2 4 1 1 3];\r\nassert(isequal(correct, CountSeq(x)));\r\n\r\n\r\n%%\r\nx = [9];\r\ncorrect = [1 9];\r\nassert(isequal(correct, CountSeq(x)));\r\n\r\n\r\n%%\r\nx = ones(1,9);\r\ncorrect = [9 1];\r\nassert(isequal(correct, CountSeq(x)));\r\n\r\n\r\n%%\r\nx = 1:9;\r\ncorrect = [1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9];\r\nassert(isequal(correct, CountSeq(x)));\r\n\r\n%%\r\nx = [1 2 2 1];\r\ncorrect = [1 1 2 2 1 1];\r\nassert(isequal(correct, CountSeq(x)));\r\n\r\n","published":true,"deleted":false,"likes_count":30,"comments_count":13,"created_by":1,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":2180,"test_suite_updated_at":"2013-03-14T15:22:01.000Z","rescore_all_solutions":false,"group_id":2,"created_at":"2012-01-18T01:00:25.000Z","updated_at":"2026-03-24T23:58:28.000Z","published_at":"2012-01-18T01:00:25.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\u003eGiven a vector x, find the \\\"counting sequence\\\" y.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eA counting sequence is formed by \\\"counting\\\" the entries in a given sequence.\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\u003eFor example, the sequence\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[ x = 5, 5, 2, 1, 1, 1, 1, 3]]\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\u003ecan be read as\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[ Two 5's, one 2, four 1's, one 3]]\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\u003ewhich translates to\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[ y = 2, 5, 1, 2, 4, 1, 1, 3]]\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 y is the counting sequence for x.\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\u003eFor this problem, all elements in the sequences x and y will be in the range from 1 to 9.\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":63,"title":"Encode Roman Numerals","description":"Create a function taking a non-negative integer as its parameter and returning a string containing the Roman Numeral representation of that integer.\r\nBy convention, \"modern\" Roman numerals are written by expressing each digit separately starting with the leftmost digit and skipping any digit with a value of zero.\r\nExamples\r\nIf n is 1990 then romStr = 'MCMXC' since 1000=M, 900=CM, 90=XC.\r\nIf n is 2008 then romStr = 'MMVIII' since 2000=MM, 8=VIII.\r\nIf n is 1666 then romStr = 'MDCLXVI'.\r\nIf n is 0 then romStr is empty ([] and '' are both acceptable)\r\nn will always be an integer between 0 and 3999 (inclusive).\r\nThis problem is adapted from Rosetta Code.","description_html":"\u003cdiv style = \"text-align: start; line-height: 20.4333px; min-height: 0px; white-space: normal; color: rgb(0, 0, 0); font-family: Menlo, Monaco, Consolas, monospace; font-style: normal; font-size: 14px; font-weight: 400; text-decoration: rgb(0, 0, 0); white-space: normal; \"\u003e\u003cdiv style=\"block-size: 285.733px; display: block; min-width: 0px; padding-block-start: 0px; padding-top: 0px; perspective-origin: 407px 142.867px; transform-origin: 407px 142.867px; vertical-align: baseline; \"\u003e\u003cdiv style=\"block-size: 42px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 21px; text-align: left; transform-origin: 384px 21px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 373px 8px; transform-origin: 373px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eCreate a function taking a non-negative integer as its parameter and returning a string containing the Roman Numeral representation of that integer.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 42px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 21px; text-align: left; transform-origin: 384px 21px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 376px 8px; transform-origin: 376px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eBy convention, \"modern\" Roman numerals are written by expressing each digit separately starting with the leftmost digit and skipping any digit with a value of zero.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 30px 8px; transform-origin: 30px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eExamples\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cul style=\"block-size: 81.7333px; counter-reset: list-item 0; font-family: Helvetica, Arial, sans-serif; list-style-type: square; margin-block-end: 20px; margin-block-start: 10px; margin-bottom: 20px; margin-top: 10px; perspective-origin: 391px 40.8667px; transform-origin: 391px 40.8667px; margin-top: 10px; margin-bottom: 20px; \"\u003e\u003cli style=\"block-size: 20.4333px; counter-reset: none; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 363px 10.2167px; text-align: left; transform-origin: 363px 10.2167px; white-space: pre-wrap; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 213px 8px; transform-origin: 213px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eIf n is 1990 then romStr = 'MCMXC' since 1000=M, 900=CM, 90=XC.\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"block-size: 20.4333px; counter-reset: none; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 363px 10.2167px; text-align: left; transform-origin: 363px 10.2167px; white-space: pre-wrap; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 179px 8px; transform-origin: 179px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eIf n is 2008 then romStr = 'MMVIII' since 2000=MM, 8=VIII.\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"block-size: 20.4333px; counter-reset: none; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 363px 10.2167px; text-align: left; transform-origin: 363px 10.2167px; white-space: pre-wrap; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 116px 8px; transform-origin: 116px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eIf n is 1666 then romStr = 'MDCLXVI'.\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"block-size: 20.4333px; counter-reset: none; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 363px 10.2167px; text-align: left; transform-origin: 363px 10.2167px; white-space: pre-wrap; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 184.5px 8px; transform-origin: 184.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eIf n is 0 then romStr is empty ([] and '' are both acceptable)\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003c/ul\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 184.5px 8px; transform-origin: 184.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003en will always be an integer between 0 and 3999 (inclusive).\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 92px 8px; transform-origin: 92px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-style: italic; \"\u003eThis problem is adapted from\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 2px 8px; transform-origin: 2px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-style: italic; \"\u003e \u003c/span\u003e\u003c/span\u003e\u003ca target='_blank' href = \"/#null\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"font-style: italic; \"\u003eRosetta Code\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 2px 8px; transform-origin: 2px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-style: italic; \"\u003e.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e","function_template":"function romStr = dec2rom(n)\r\n  romStr = 'I';\r\nend","test_suite":"%%\r\nx = 1990;\r\ny_correct = 'MCMXC';\r\nassert(isequal(dec2rom(x),y_correct))\r\n\r\n%%\r\nx = 2008;\r\ny_correct = 'MMVIII';\r\nassert(isequal(dec2rom(x),y_correct))\r\n\r\n%%\r\nx = 1666;\r\ny_correct = 'MDCLXVI';\r\nassert(isequal(dec2rom(x),y_correct))\r\n\r\n%%\r\nx = 444;\r\ny_correct = 'CDXLIV';\r\nassert(isequal(dec2rom(x),y_correct))\r\n\r\n%%\r\nx = 199;\r\ny_correct = 'CXCIX';\r\nassert(isequal(dec2rom(x),y_correct))\r\n\r\n%%\r\nx = 49;\r\ny_correct = 'XLIX';\r\nassert(isequal(dec2rom(x),y_correct))\r\n\r\n%%\r\nx = 14;\r\ny_correct = 'XIV';\r\nassert(isequal(dec2rom(x),y_correct))\r\n\r\n%%\r\nx = 0;\r\ny_correct = '';\r\nassert(isempty(dec2rom(x)))\r\n","published":true,"deleted":false,"likes_count":16,"comments_count":1,"created_by":1,"edited_by":223089,"edited_at":"2022-07-07T05:50:19.000Z","deleted_by":null,"deleted_at":null,"solvers_count":2009,"test_suite_updated_at":"2022-07-07T05:50:19.000Z","rescore_all_solutions":false,"group_id":2,"created_at":"2012-01-18T01:00:26.000Z","updated_at":"2026-02-09T17:54:34.000Z","published_at":"2012-01-18T01:00:26.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eCreate a function taking a non-negative integer as its parameter and returning a string containing the Roman Numeral representation of that 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\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eBy convention, \\\"modern\\\" Roman numerals are written by expressing each digit separately starting with the leftmost digit and skipping any digit with a value of zero.\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\u003eExamples\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eIf n is 1990 then romStr = 'MCMXC' since 1000=M, 900=CM, 90=XC.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eIf n is 2008 then romStr = 'MMVIII' since 2000=MM, 8=VIII.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eIf n is 1666 then romStr = 'MDCLXVI'.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eIf n is 0 then romStr is empty ([] and '' are both acceptable)\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\u003en will always be an integer between 0 and 3999 (inclusive).\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eThis problem is adapted from\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"\\\"\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eRosetta Code\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\",\"relationship\":null}],\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"target\":\"/matlab/document.xml\",\"relationshipId\":\"rId1\"}]}"}],"problem_search":{"errors":[],"problems":[{"id":61144,"title":"FEN Chess Notation","description":"Note: This problem is the reverse, or complement, of Problem 61155 - FEN to Chess Board.\r\nGiven an 8-by-8 character matrix representing a chess board, convert it to FEN (Forsyth-Edwards Notation) board position format.\r\nThe input matrix uses:\r\nDots (\".\") for empty squares\r\nLetters for pieces: \"rnbqkp\" (black pieces) and \"RNBQKP\" (white pieces)\r\nFEN notation encodes each row from top to bottom, separated by slashes (\"/\"). Consecutive empty squares are replaced by their count (1-8).\r\n\r\nExample 1\r\nStarting position:\r\ninput = [ ...\r\n    'rnbqkbnr'\r\n    'pppppppp'\r\n    '........'\r\n    '........'\r\n    '........'\r\n    '........'\r\n    'PPPPPPPP'\r\n    'RNBQKBNR']\r\noutput =\r\n  'rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR'\r\nExample 2\r\nAfter white plays e4:\r\ninput = [ ...\r\n    'rnbqkbnr'\r\n    'pppppppp'\r\n    '........'\r\n    '........'\r\n    '....P...'\r\n    '........'\r\n    'PPPP.PPP'\r\n    'RNBQKBNR']\r\noutput =\r\n  'rnbqkbnr/pppppppp/8/8/4P3/8/PPPP1PPP/RNBQKBNR'\r\n\r\nNote: Empty squares before the P are \"4\", the P itself, then \"3\" empty squares after.","description_html":"\u003cdiv style = \"text-align: start; line-height: 20.44px; min-height: 0px; white-space: normal; color: rgb(33, 33, 33); font-family: Menlo, Monaco, Consolas, monospace; font-style: normal; font-size: 14px; font-weight: 400; text-decoration: none; white-space: normal; \"\u003e\u003cdiv style=\"block-size: 1352.21px; display: block; min-width: 0px; padding-block-start: 0px; padding-inline-start: 2px; padding-left: 2px; padding-top: 0px; perspective-origin: 333.5px 676.104px; transform-origin: 333.5px 676.104px; vertical-align: baseline; \"\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.5px; text-align: left; transform-origin: 309.5px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eNote: This problem is the reverse, or complement, of\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e \u003c/span\u003e\u003c/span\u003e\u003ca target='_blank' href = \"https://www.mathworks.com/matlabcentral/cody/problems/61155-fen-to-chess-board\"\u003e\u003cspan style=\"border-block-end-color: rgb(0, 91, 130); border-block-start-color: rgb(0, 91, 130); border-bottom-color: rgb(0, 91, 130); border-inline-end-color: rgb(0, 91, 130); border-inline-start-color: rgb(0, 91, 130); border-left-color: rgb(0, 91, 130); border-right-color: rgb(0, 91, 130); border-top-color: rgb(0, 91, 130); caret-color: rgb(0, 91, 130); color: rgb(0, 91, 130); column-rule-color: rgb(0, 91, 130); outline-color: rgb(0, 91, 130); text-decoration-color: rgb(0, 91, 130); text-emphasis-color: rgb(0, 91, 130); \"\u003e\u003cspan style=\"\"\u003eProblem 61155 - FEN to Chess Board\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 42px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 21px; text-align: left; transform-origin: 309.5px 21px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eGiven an 8-by-8 character matrix representing a chess board, convert it to FEN (\u003c/span\u003e\u003c/span\u003e\u003ca target='_blank' href = \"https://en.wikipedia.org/wiki/Forsyth%E2%80%93Edwards_Notation\"\u003e\u003cspan style=\"border-block-end-color: rgb(0, 91, 130); border-block-start-color: rgb(0, 91, 130); border-bottom-color: rgb(0, 91, 130); border-inline-end-color: rgb(0, 91, 130); border-inline-start-color: rgb(0, 91, 130); border-left-color: rgb(0, 91, 130); border-right-color: rgb(0, 91, 130); border-top-color: rgb(0, 91, 130); caret-color: rgb(0, 91, 130); color: rgb(0, 91, 130); column-rule-color: rgb(0, 91, 130); outline-color: rgb(0, 91, 130); text-decoration-color: rgb(0, 91, 130); text-emphasis-color: rgb(0, 91, 130); \"\u003e\u003cspan style=\"\"\u003eForsyth-Edwards Notation\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e) board position format.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.5px; text-align: left; transform-origin: 309.5px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThe input matrix uses:\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cul style=\"block-size: 40.875px; font-family: Helvetica, Arial, sans-serif; list-style-type: square; margin-block-end: 20px; margin-block-start: 10px; margin-bottom: 20px; margin-top: 10px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 316.5px 20.4375px; transform-origin: 316.5px 20.4375px; margin-top: 10px; margin-bottom: 20px; \"\u003e\u003cli style=\"block-size: 20.4375px; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 288.5px 10.2188px; text-align: left; transform-origin: 288.5px 10.2188px; white-space-collapse: preserve; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eDots (\".\") for empty squares\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"block-size: 20.4375px; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 288.5px 10.2188px; text-align: left; transform-origin: 288.5px 10.2188px; white-space-collapse: preserve; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eLetters for pieces: \"rnbqkp\" (black pieces) and \"RNBQKP\" (white pieces)\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003c/ul\u003e\u003cdiv style=\"block-size: 42px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 21px; text-align: left; transform-origin: 309.5px 21px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eFEN notation encodes each row from top to bottom, separated by slashes (\"/\"). Consecutive empty squares are replaced by their count (1-8).\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 273.667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 136.833px; text-align: left; transform-origin: 309.5px 136.833px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cimg class=\"imageNode\" width=\"266\" height=\"268\" style=\"vertical-align: baseline;width: 266px;height: 268px\" src=\"data:image/png;base64,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\" data-image-state=\"image-loaded\"\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.5px; text-align: left; transform-origin: 309.5px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003eExample 1\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.5px; text-align: left; transform-origin: 309.5px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eStarting position:\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.6667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.8333px; text-align: left; transform-origin: 309.5px 10.8333px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003einput = [ ...\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.6667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.8333px; text-align: left; transform-origin: 309.5px 10.8333px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e    \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003e'rnbqkbnr'\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.6667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.8333px; text-align: left; transform-origin: 309.5px 10.8333px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e    \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003e'pppppppp'\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.6667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.8333px; text-align: left; transform-origin: 309.5px 10.8333px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e    \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003e'........'\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.6667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.8333px; text-align: left; transform-origin: 309.5px 10.8333px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e    \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003e'........'\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.6667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.8333px; text-align: left; transform-origin: 309.5px 10.8333px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e    \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003e'........'\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.6667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.8333px; text-align: left; transform-origin: 309.5px 10.8333px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e    \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003e'........'\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.6667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.8333px; text-align: left; transform-origin: 309.5px 10.8333px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e    \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003e'PPPPPPPP'\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.6667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.8333px; text-align: left; transform-origin: 309.5px 10.8333px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e    \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003e'RNBQKBNR']\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.6667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.8333px; text-align: left; transform-origin: 309.5px 10.8333px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003eoutput =\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.6667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.8333px; text-align: left; transform-origin: 309.5px 10.8333px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003e  'rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR'\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.5px; text-align: left; transform-origin: 309.5px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003eExample 2\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.5px; text-align: left; transform-origin: 309.5px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eAfter white plays e4:\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.6667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.8333px; text-align: left; transform-origin: 309.5px 10.8333px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003einput = [ ...\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.6667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.8333px; text-align: left; transform-origin: 309.5px 10.8333px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e    \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003e'rnbqkbnr'\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.6667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.8333px; text-align: left; transform-origin: 309.5px 10.8333px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e    \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003e'pppppppp'\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.6667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.8333px; text-align: left; transform-origin: 309.5px 10.8333px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e    \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003e'........'\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.6667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.8333px; text-align: left; transform-origin: 309.5px 10.8333px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e    \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003e'........'\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.6667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.8333px; text-align: left; transform-origin: 309.5px 10.8333px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e    \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003e'....P...'\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.6667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.8333px; text-align: left; transform-origin: 309.5px 10.8333px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e    \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003e'........'\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.6667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.8333px; text-align: left; transform-origin: 309.5px 10.8333px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e    \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003e'PPPP.PPP'\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.6667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.8333px; text-align: left; transform-origin: 309.5px 10.8333px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e    \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003e'RNBQKBNR']\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.6667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.8333px; text-align: left; transform-origin: 309.5px 10.8333px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003eoutput =\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.6667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.8333px; text-align: left; transform-origin: 309.5px 10.8333px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003e  'rnbqkbnr/pppppppp/8/8/4P3/8/PPPP1PPP/RNBQKBNR'\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.5px; text-align: left; transform-origin: 309.5px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.5px; text-align: left; transform-origin: 309.5px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eNote: Empty squares before the P are \"4\", the P itself, then \"3\" empty squares after.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e","function_template":"function fen = fenNotation(board)\r\n  fen = '';\r\nend\r\n","test_suite":"%% Test 1: Starting position\r\nboard = ['rnbqkbnr';\r\n         'pppppppp';\r\n         '........';\r\n         '........';\r\n         '........';\r\n         '........';\r\n         'PPPPPPPP';\r\n         'RNBQKBNR'];\r\nassert(isequal(fenNotation(board), 'rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR'))\r\n\r\n%% Test 2: After 1.e4\r\nboard = ['rnbqkbnr';\r\n         'pppppppp';\r\n         '........';\r\n         '........';\r\n         '....P...';\r\n         '........';\r\n         'PPPP.PPP';\r\n         'RNBQKBNR'];\r\nassert(isequal(fenNotation(board), 'rnbqkbnr/pppppppp/8/8/4P3/8/PPPP1PPP/RNBQKBNR'))\r\n\r\n%% Test 3: After 1.e4 c5\r\nboard = ['rnbqkbnr';\r\n         'pp.ppppp';\r\n         '........';\r\n         '..p.....';\r\n         '....P...';\r\n         '........';\r\n         'PPPP.PPP';\r\n         'RNBQKBNR'];\r\nassert(isequal(fenNotation(board), 'rnbqkbnr/pp1ppppp/8/2p5/4P3/8/PPPP1PPP/RNBQKBNR'))\r\n\r\n%% Test 4: After 1.e4 c5 2.Nf3\r\nboard = ['rnbqkbnr';\r\n         'pp.ppppp';\r\n         '........';\r\n         '..p.....';\r\n         '....P...';\r\n         '.....N..';\r\n         'PPPP.PPP';\r\n         'RNBQKB.R'];\r\nassert(isequal(fenNotation(board), 'rnbqkbnr/pp1ppppp/8/2p5/4P3/5N2/PPPP1PPP/RNBQKB1R'))\r\n\r\n%% Test 5: Complex middle game position\r\nboard = ['r.bk...r';\r\n         'p..pBpNp';\r\n         'n....n..';\r\n         '.p.NP..P';\r\n         '......P.';\r\n         '...P....';\r\n         'P.P.K...';\r\n         'q.....b.'];\r\nassert(isequal(fenNotation(board), 'r1bk3r/p2pBpNp/n4n2/1p1NP2P/6P1/3P4/P1P1K3/q5b1'))\r\n\r\n%% Test 6: Empty board\r\nboard = ['........';\r\n         '........';\r\n         '........';\r\n         '........';\r\n         '........';\r\n         '........';\r\n         '........';\r\n         '........'];\r\nassert(isequal(fenNotation(board), '8/8/8/8/8/8/8/8'))\r\n\r\n%% Test 7: Only kings\r\nboard = ['....k...';\r\n         '........';\r\n         '........';\r\n         '........';\r\n         '........';\r\n         '........';\r\n         '........';\r\n         '....K...'];\r\nassert(isequal(fenNotation(board), '4k3/8/8/8/8/8/8/4K3'))\r\n\r\n%% Test 8: Single piece per row\r\nboard = ['r.......';\r\n         '.n......';\r\n         '..b.....';\r\n         '...q....';\r\n         '....k...';\r\n         '.....B..';\r\n         '......N.';\r\n         '.......R'];\r\nassert(isequal(fenNotation(board), 'r7/1n6/2b5/3q4/4k3/5B2/6N1/7R'))\r\n\r\n%% Test 9: Alternating pieces and spaces\r\nboard = ['r.r.r.r.';\r\n         '.p.p.p.p';\r\n         'n.n.n.n.';\r\n         '.b.b.b.b';\r\n         'B.B.B.B.';\r\n         '.N.N.N.N';\r\n         'P.P.P.P.';\r\n         '.R.R.R.R'];\r\nassert(isequal(fenNotation(board), 'r1r1r1r1/1p1p1p1p/n1n1n1n1/1b1b1b1b/B1B1B1B1/1N1N1N1N/P1P1P1P1/1R1R1R1R'))\r\n\r\n%% Test 10: All pawns\r\nboard = ['pppppppp';\r\n         'pppppppp';\r\n         'pppppppp';\r\n         'pppppppp';\r\n         'PPPPPPPP';\r\n         'PPPPPPPP';\r\n         'PPPPPPPP';\r\n         'PPPPPPPP'];\r\nassert(isequal(fenNotation(board), 'pppppppp/pppppppp/pppppppp/pppppppp/PPPPPPPP/PPPPPPPP/PPPPPPPP/PPPPPPPP'))\r\n\r\n%% Test 11: After 1.d4 Nf6 2.c4 e6\r\nboard = ['rnbqkb.r';\r\n         'pppp.ppp';\r\n         '....pn..';\r\n         '........';\r\n         '..PP....';\r\n         '........';\r\n         'PP..PPPP';\r\n         'RNBQKBNR'];\r\nassert(isequal(fenNotation(board), 'rnbqkb1r/pppp1ppp/4pn2/8/2PP4/8/PP2PPPP/RNBQKBNR'))\r\n\r\n%% Test 12: After 1.e4 e5 2.Nf3 Nc6 3.Bb5\r\nboard = ['r.bqkbnr';\r\n         'pppp.ppp';\r\n         '..n.....';\r\n         '.B..p...';\r\n         '....P...';\r\n         '.....N..';\r\n         'PPPP.PPP';\r\n         'RNBQK..R'];\r\nassert(isequal(fenNotation(board), 'r1bqkbnr/pppp1ppp/2n5/1B2p3/4P3/5N2/PPPP1PPP/RNBQK2R'))\r\n\r\n%% Test 13: Endgame - King and pawns\r\nboard = ['........';\r\n         '...k....';\r\n         '..p.p...';\r\n         '........';\r\n         '........';\r\n         '..P.P...';\r\n         '...K....';\r\n         '........'];\r\nassert(isequal(fenNotation(board), '8/3k4/2p1p3/8/8/2P1P3/3K4/8'))\r\n\r\n%% Test 14: All pieces on first rank\r\nboard = ['rnbqkbnr';\r\n         '........';\r\n         '........';\r\n         '........';\r\n         '........';\r\n         '........';\r\n         '........';\r\n         'RNBQKBNR'];\r\nassert(isequal(fenNotation(board), 'rnbqkbnr/8/8/8/8/8/8/RNBQKBNR'))\r\n\r\n%% Test 15: Pieces at edges\r\nboard = ['r......r';\r\n         'p......p';\r\n         '........';\r\n         '........';\r\n         '........';\r\n         '........';\r\n         'P......P';\r\n         'R......R'];\r\nassert(isequal(fenNotation(board), 'r6r/p6p/8/8/8/8/P6P/R6R'))\r\n\r\n%% Test 16: After 1.Nf3 Nf6 2.g3 g6\r\nboard = ['rnbqkb.r';\r\n         'pppppp.p';\r\n         '.....np.';\r\n         '........';\r\n         '........';\r\n         '.....NP.';\r\n         'PPPPPP.P';\r\n         'RNBQKB.R'];\r\nassert(isequal(fenNotation(board), 'rnbqkb1r/pppppp1p/5np1/8/8/5NP1/PPPPPP1P/RNBQKB1R'))\r\n\r\n%% Test 17: Queen's Gambit Declined\r\nboard = ['rnbqkb.r';\r\n         'ppp..ppp';\r\n         '....pn..';\r\n         '...p....';\r\n         '..PP....';\r\n         '..N.....';\r\n         'PP..PPPP';\r\n         'R.BQKBNR'];\r\nassert(isequal(fenNotation(board), 'rnbqkb1r/ppp2ppp/4pn2/3p4/2PP4/2N5/PP2PPPP/R1BQKBNR'))\r\n\r\n%% Test 18: Scattered position\r\nboard = ['...q....';\r\n         '........';\r\n         '.k....n.';\r\n         '........';\r\n         '.....P..';\r\n         '..N.....';\r\n         '........';\r\n         '...Q.K..'];\r\nassert(isequal(fenNotation(board), '3q4/8/1k4n1/8/5P2/2N5/8/3Q1K2'))\r\n\r\n%% Test 19: Dense position\r\nboard = ['rnbqkbnr';\r\n         'pppppppp';\r\n         '..N.....';\r\n         '........';\r\n         '........';\r\n         '........';\r\n         'PPPPPPPP';\r\n         'R.BQKBNR'];\r\nassert(isequal(fenNotation(board), 'rnbqkbnr/pppppppp/2N5/8/8/8/PPPPPPPP/R1BQKBNR'))\r\n\r\n%% Test 20: Single empty squares between pieces\r\nboard = ['r.b.k.b.';\r\n         'p.p.p.p.';\r\n         '.n.q.n.r';\r\n         '........';\r\n         '........';\r\n         '.N.Q.N.R';\r\n         'P.P.P.P.';\r\n         'R.B.K.B.'];\r\nassert(isequal(fenNotation(board), 'r1b1k1b1/p1p1p1p1/1n1q1n1r/8/8/1N1Q1N1R/P1P1P1P1/R1B1K1B1'))\r\n","published":true,"deleted":false,"likes_count":0,"comments_count":0,"created_by":7,"edited_by":7,"edited_at":"2026-01-08T15:31:59.000Z","deleted_by":null,"deleted_at":null,"solvers_count":8,"test_suite_updated_at":"2025-12-24T20:06:01.000Z","rescore_all_solutions":false,"group_id":1,"created_at":"2025-12-24T19:24:48.000Z","updated_at":"2026-02-26T10:51:57.000Z","published_at":"2025-12-24T20:06:01.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eNote: This problem is the reverse, or complement, of\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=\\\"https://www.mathworks.com/matlabcentral/cody/problems/61155-fen-to-chess-board\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eProblem 61155 - FEN to Chess Board\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\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\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eGiven an 8-by-8 character matrix representing a chess board, convert it to FEN (\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://en.wikipedia.org/wiki/Forsyth%E2%80%93Edwards_Notation\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eForsyth-Edwards Notation\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e) board position format.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe input matrix uses:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eDots (\\\".\\\") for empty squares\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eLetters for pieces: \\\"rnbqkp\\\" (black pieces) and \\\"RNBQKP\\\" (white pieces)\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\u003eFEN notation encodes each row from top to bottom, separated by slashes (\\\"/\\\"). Consecutive empty squares are replaced by their count (1-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\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:customXml w:element=\\\"image\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"height\\\" w:val=\\\"268\\\"/\u003e\u003cw:attr w:name=\\\"width\\\" w:val=\\\"266\\\"/\u003e\u003cw:attr w:name=\\\"verticalAlign\\\" w:val=\\\"baseline\\\"/\u003e\u003cw:attr w:name=\\\"altText\\\" w:val=\\\"\\\"/\u003e\u003cw:attr w:name=\\\"relationshipId\\\" w:val=\\\"rId1\\\"/\u003e\u003c/w:customXmlPr\u003e\u003c/w:customXml\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eExample 1\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\u003eStarting position:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003einput = [ ...\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e    \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e'rnbqkbnr'\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e    \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e'pppppppp'\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e    \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\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\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e    \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\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\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e    \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\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\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e    \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\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\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e    \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e'PPPPPPPP'\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e    \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e'RNBQKBNR']\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eoutput =\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e  'rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR'\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eExample 2\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\u003eAfter white plays e4:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003einput = [ ...\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e    \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e'rnbqkbnr'\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e    \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e'pppppppp'\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e    \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\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\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e    \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\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\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e    \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e'....P...'\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e    \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\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\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e    \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e'PPPP.PPP'\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e    \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e'RNBQKBNR']\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eoutput =\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e  'rnbqkbnr/pppppppp/8/8/4P3/8/PPPP1PPP/RNBQKBNR'\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\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\u003eNote: Empty squares before the P are \\\"4\\\", the P itself, then \\\"3\\\" empty squares after.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\",\"relationship\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/image\",\"target\":\"/media/image1.png\",\"relationshipId\":\"rId1\"}]},{\"partUri\":\"/media/image1.png\",\"contentType\":\"image/png\",\"content\":\"data:image/png;base64,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\",\"relationship\":null}],\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"target\":\"/matlab/document.xml\",\"relationshipId\":\"rId1\"}]}"},{"id":45282,"title":"Cryptography with A Square Matrix : Decoding","description":"Previous Problem: Cryptography with A Square Matrix : Encoding\r\nNow decode a double vector to a (hopefully!) meaningful text.\r\nInputs are encoded vector and key matrix.\r\n   encodedVector = [1665 1624 1541 1549 1495 1501 486 510 534 1503 1552 1595 1192 747 836]\r\n\r\n   key = magic(3);\r\ninverse of key\r\n   inverseKey = [0.147222222222222 -0.144444444444444 0.0638888888888889\r\n               -0.0611111111111111 0.0222222222222222 0.105555555555556\r\n               -0.0194444444444445 0.188888888888889 -0.102777777777778];\r\nReshape encodedVector so it has the same number of rows with key\r\n   reshapedVector = [1665 1549 486 1503 1192;\r\n                     1624 1495 510 1552 747;\r\n                     1541 1501 534 1595 836];\r\nMultiply inverseKey and reshapedVector, round it and reshape it;\r\n messageVector = [109 97 116 108 97 98 32 38 32 99 111 100 121 32 32];\r\nchar equivalent of message vector is 'matlab \u0026 cody'","description_html":"\u003cdiv style = \"text-align: start; line-height: 20.4333px; min-height: 0px; white-space: normal; color: rgb(0, 0, 0); font-family: Menlo, Monaco, Consolas, monospace; font-style: normal; font-size: 14px; font-weight: 400; text-decoration: rgb(0, 0, 0); white-space: normal; \"\u003e\u003cdiv style=\"block-size: 449.333px; display: block; min-width: 0px; padding-block-start: 0px; padding-top: 0px; perspective-origin: 407px 224.667px; transform-origin: 407px 224.667px; vertical-align: baseline; \"\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 57.5px 8px; transform-origin: 57.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003ePrevious Problem:\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 2px 8px; transform-origin: 2px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e \u003c/span\u003e\u003c/span\u003e\u003ca target='_blank' href = \"https://www.mathworks.com/matlabcentral/cody/problems/45279-cryptography-with-a-square-matrix-encoding\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"\"\u003eCryptography with A Square Matrix : Encoding\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 193px 8px; transform-origin: 193px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eNow decode a double vector to a (hopefully!) meaningful text.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 31.5px 8px; transform-origin: 31.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eInputs are\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 2px 8px; transform-origin: 2px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 56px 8px; transform-origin: 56px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003eencoded vector\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 14px 8px; transform-origin: 14px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e and\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 2px 8px; transform-origin: 2px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 12px 8px; transform-origin: 12px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003ekey\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 22.5px 8px; transform-origin: 22.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e matrix.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgb(247, 247, 247); block-size: 61.3px; border-bottom-left-radius: 4px; border-bottom-right-radius: 4px; border-end-end-radius: 4px; border-end-start-radius: 4px; border-start-end-radius: 4px; border-start-start-radius: 4px; border-top-left-radius: 4px; border-top-right-radius: 4px; margin-block-end: 10px; margin-block-start: 10px; margin-bottom: 10px; margin-inline-end: 3px; margin-inline-start: 3px; margin-left: 3px; margin-right: 3px; margin-top: 10px; perspective-origin: 404px 30.65px; transform-origin: 404px 30.65px; margin-left: 3px; margin-top: 10px; margin-bottom: 10px; margin-right: 3px; \"\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 1px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 1px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 1px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 404px 10.2167px; transform-origin: 404px 10.2167px; white-space: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 360px 8.5px; tab-size: 4; transform-origin: 360px 8.5px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e   encodedVector = [1665 1624 1541 1549 1495 1501 486 510 534 1503 1552 1595 1192 747 836]\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 1px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 1px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 1px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 404px 10.2167px; transform-origin: 404px 10.2167px; white-space: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 0px 8.5px; tab-size: 4; transform-origin: 0px 8.5px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 1px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 1px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 1px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 404px 10.2167px; transform-origin: 404px 10.2167px; white-space: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 72px 8.5px; tab-size: 4; transform-origin: 72px 8.5px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e   key = magic(3);\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 10px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 10px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 10px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 31px 8px; transform-origin: 31px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003einverse of\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 2px 8px; transform-origin: 2px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 12px 8px; transform-origin: 12px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003ekey\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgb(247, 247, 247); block-size: 61.3px; border-bottom-left-radius: 4px; border-bottom-right-radius: 4px; border-end-end-radius: 4px; border-end-start-radius: 4px; border-start-end-radius: 4px; border-start-start-radius: 4px; border-top-left-radius: 4px; border-top-right-radius: 4px; margin-block-end: 10px; margin-block-start: 10px; margin-bottom: 10px; margin-inline-end: 3px; margin-inline-start: 3px; margin-left: 3px; margin-right: 3px; margin-top: 10px; perspective-origin: 404px 30.65px; transform-origin: 404px 30.65px; margin-left: 3px; margin-top: 10px; margin-bottom: 10px; margin-right: 3px; \"\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 1px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 1px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 1px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 404px 10.2167px; transform-origin: 404px 10.2167px; white-space: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 288px 8.5px; tab-size: 4; transform-origin: 288px 8.5px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e   inverseKey = [0.147222222222222 -0.144444444444444 0.0638888888888889\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 1px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 1px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 1px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 404px 10.2167px; transform-origin: 404px 10.2167px; white-space: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 284px 8.5px; tab-size: 4; transform-origin: 284px 8.5px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e               -0.0611111111111111 0.0222222222222222 0.105555555555556\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 1px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 1px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 1px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 404px 10.2167px; transform-origin: 404px 10.2167px; white-space: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 292px 8.5px; tab-size: 4; transform-origin: 292px 8.5px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e               -0.0194444444444445 0.188888888888889 -0.102777777777778];\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 10px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 10px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 10px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 28.5px 8px; transform-origin: 28.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eReshape\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 2px 8px; transform-origin: 2px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 53.5px 8px; transform-origin: 53.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003eencodedVector\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 124px 8px; transform-origin: 124px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e so it has the same number of rows with\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 2px 8px; transform-origin: 2px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 12px 8px; transform-origin: 12px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003ekey\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgb(247, 247, 247); block-size: 61.3px; border-bottom-left-radius: 4px; border-bottom-right-radius: 4px; border-end-end-radius: 4px; border-end-start-radius: 4px; border-start-end-radius: 4px; border-start-start-radius: 4px; border-top-left-radius: 4px; border-top-right-radius: 4px; margin-block-end: 10px; margin-block-start: 10px; margin-bottom: 10px; margin-inline-end: 3px; margin-inline-start: 3px; margin-left: 3px; margin-right: 3px; margin-top: 10px; perspective-origin: 404px 30.65px; transform-origin: 404px 30.65px; margin-left: 3px; margin-top: 10px; margin-bottom: 10px; margin-right: 3px; \"\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 1px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 1px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 1px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 404px 10.2167px; transform-origin: 404px 10.2167px; white-space: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 180px 8.5px; tab-size: 4; transform-origin: 180px 8.5px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e   reshapedVector = [1665 1549 486 1503 1192;\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 1px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 1px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 1px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 404px 10.2167px; transform-origin: 404px 10.2167px; white-space: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 176px 8.5px; tab-size: 4; transform-origin: 176px 8.5px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e                     1624 1495 510 1552 747;\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 1px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 1px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 1px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 404px 10.2167px; transform-origin: 404px 10.2167px; white-space: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 180px 8.5px; tab-size: 4; transform-origin: 180px 8.5px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e                     1541 1501 534 1595 836];\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 10px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 10px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 10px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 23.5px 8px; transform-origin: 23.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eMultiply\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 2px 8px; transform-origin: 2px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 40px 8px; transform-origin: 40px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003einverseKey\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 14px 8px; transform-origin: 14px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e and\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 2px 8px; transform-origin: 2px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 56px 8px; transform-origin: 56px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003ereshapedVector\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 77.5px 8px; transform-origin: 77.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e, round it and reshape it;\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgb(247, 247, 247); block-size: 20.4333px; border-bottom-left-radius: 4px; border-bottom-right-radius: 4px; border-end-end-radius: 4px; border-end-start-radius: 4px; border-start-end-radius: 4px; border-start-start-radius: 4px; border-top-left-radius: 4px; border-top-right-radius: 4px; margin-block-end: 10px; margin-block-start: 10px; margin-bottom: 10px; margin-inline-end: 3px; margin-inline-start: 3px; margin-left: 3px; margin-right: 3px; margin-top: 10px; perspective-origin: 404px 10.2167px; transform-origin: 404px 10.2167px; margin-left: 3px; margin-top: 10px; margin-bottom: 10px; margin-right: 3px; \"\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 1px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 1px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 1px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; white-space: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 280px 8.5px; tab-size: 4; transform-origin: 280px 8.5px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e messageVector = [109 97 116 108 97 98 32 38 32 99 111 100 121 32 32];\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 10px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 10px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 10px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 165px 8px; transform-origin: 165px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003echar equivalent of message vector is 'matlab \u0026amp; cody'\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e","function_template":"function hopefullyMeaningfulText = decodeMessage(encodedVector, keyMatrix)\r\n\r\nend","test_suite":"%%\r\nencodedVector = [1665 1624 1541 1549 1495 1501 1013 1351 1221 1426 1153 886 1714 1680 1586 480 480 480];\r\nkeyMatrix = magic(3);\r\ny_correct = 'matlab and cody';\r\nassert(isequal(decodeMessage(encodedVector, keyMatrix),y_correct))\r\n\r\n%%\r\nencodedVector = [6829 6941 7028 6905 6877 6043 5432 6941 6575 6469 3236 3644 2352 2760 2828];\r\nkeyMatrix = magic(5);\r\ny_correct = 'hello world';\r\nassert(isequal(decodeMessage(encodedVector, keyMatrix),y_correct))\r\n\r\n%%\r\nencodedVector = [10923 12101 13961 10519 10823 12582 5974 11814 12207 5786 11120 11328 5574 10458 10625 10134 11738 13359 5710 10858 11017 9815 11533 13372 8501 8231 11476 10488 10848 12497 5890 11490 11781 5408 10098 10453 10858 11252 13568 10196 11470 13008 9790 10816 12582 8438 4418 6724 11085 11329 13084 10447 11693 13320 5616 10838 11359 5686 10890 11193 8802 7250 10343 11099 11859 13746 9094 7344 7717 9320 7584 7900 9299 7501 10795 9881 10711 12227 3300 4116 4898];\r\nkeyMatrix = [14 20 63; 54 46 5; 71 27 24];\r\ny_correct = 'stockout is an order that cannot be satisfied, resulting in a loss of the sale.';\r\nassert(isequal(decodeMessage(encodedVector, keyMatrix),y_correct))\r\n\r\n%%\r\nencodedVector = [12269 11674 18982 12603 13111 18355 12051 12649 17959 6268 6567 14425 12171 11931 19559 6437 6969 15532 13056 12433 19898 5997 6612 14365 13705 13052 20746 11931 12436 17537 13161 12943 21233 5903 6679 14472 13679 11112 14066 13245 12765 20292 6054 7203 15871 13495 12716 19961 11148 11975 18284 3904 3776 5984];\r\nkeyMatrix = [7 92 23; 34 77 7; 89 66 32 ];\r\ny_correct = 'dasiy is a small white flower with a yellow centre.';\r\nassert(isequal(decodeMessage(encodedVector, keyMatrix),y_correct))\r\n\r\n%%\r\nencodedVector = [11887 11494 18292 13583 12983 20497 12614 11975 19214 12529 9978 13458 11678 9327 12770 11425 9250 12418 13964 13138 20021 12986 12973 20645 13025 12806 20806 6267 6981 15454 5935 6625 14358 14067 13645 21715 13128 12874 20305 6295 7117 15810 12321 12283 19978 12114 12955 18760 12611 12631 20292 5987 7087 15540 12483 10160 13146 13880 13463 20776 12455 11733 18879 13630 13463 21169 6134 7068 15586 11995 12377 17247 13825 13363 21044 13068 12596 20311 10643 11358 16613 13548 12813 20052 11747 9495 12680 14027 13493 20760 13978 13059 20385 11816 9369 12962 13357 10720 13990 10791 11707 17391 14146 13289 20512 13630 13463 21169 11655 9467 12552 11162 12043 18462 3904 3776 5984];\r\nkeyMatrix = [7 92 23; 34 77 7; 89 66 32 ];\r\ndecodeMessage(encodedVector, keyMatrix)\r\n\r\n%%\r\nencodedVector = [23314 25294 21847 18481 14593 16573 17959 19939 21334];\r\nkeyMatrix = magic(9);\r\ndecodeMessage(encodedVector, keyMatrix)\r\n","published":true,"deleted":false,"likes_count":2,"comments_count":4,"created_by":8703,"edited_by":223089,"edited_at":"2022-12-28T13:35:31.000Z","deleted_by":null,"deleted_at":null,"solvers_count":11,"test_suite_updated_at":"2022-12-28T13:35:31.000Z","rescore_all_solutions":false,"group_id":1,"created_at":"2020-01-28T08:55:42.000Z","updated_at":"2026-04-04T02:00:06.000Z","published_at":"2020-01-28T08:56:34.000Z","restored_at":null,"restored_by":null,"spam":null,"simulink":false,"admin_reviewed":false,"description_opc":"{\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003ePrevious Problem:\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=\\\"https://www.mathworks.com/matlabcentral/cody/problems/45279-cryptography-with-a-square-matrix-encoding\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eCryptography with A Square Matrix : Encoding\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\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eNow decode a double vector to a (hopefully!) meaningful text.\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\u003eInputs are\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eencoded vector\u003c/w:t\u003e\u003c/w:r\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:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ekey\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e matrix.\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[   encodedVector = [1665 1624 1541 1549 1495 1501 486 510 534 1503 1552 1595 1192 747 836]\\n\\n   key = magic(3);]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003einverse of\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ekey\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[   inverseKey = [0.147222222222222 -0.144444444444444 0.0638888888888889\\n               -0.0611111111111111 0.0222222222222222 0.105555555555556\\n               -0.0194444444444445 0.188888888888889 -0.102777777777778];]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eReshape\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eencodedVector\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e so it has the same number of rows with\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ekey\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[   reshapedVector = [1665 1549 486 1503 1192;\\n                     1624 1495 510 1552 747;\\n                     1541 1501 534 1595 836];]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eMultiply\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003einverseKey\u003c/w:t\u003e\u003c/w:r\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:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ereshapedVector\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e, round it and reshape it;\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[ messageVector = [109 97 116 108 97 98 32 38 32 99 111 100 121 32 32];]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003echar equivalent of message vector is 'matlab \u0026amp; cody'\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\",\"relationship\":null}],\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"target\":\"/matlab/document.xml\",\"relationshipId\":\"rId1\"}]}"},{"id":2627,"title":"Convert to Binary Coded Decimal","description":"Convert from decimal representation to \u003chttp://en.wikipedia.org/wiki/Binary-coded_decimal Binary Code Decimal\u003e (or BCD) representation.\r\n\r\nExamples\r\n\r\nSo 5 becomes '0101'\r\n\r\n12 is '00010010' (because 1 is '0001' and 2 is '0010')\r\n\r\n156 is '000101010110'\r\n\r\n","description_html":"\u003cp\u003eConvert from decimal representation to \u003ca href = \"http://en.wikipedia.org/wiki/Binary-coded_decimal\"\u003eBinary Code Decimal\u003c/a\u003e (or BCD) representation.\u003c/p\u003e\u003cp\u003eExamples\u003c/p\u003e\u003cp\u003eSo 5 becomes '0101'\u003c/p\u003e\u003cp\u003e12 is '00010010' (because 1 is '0001' and 2 is '0010')\u003c/p\u003e\u003cp\u003e156 is '000101010110'\u003c/p\u003e","function_template":"function y = bin2bcd(x)\r\n  y = 'x';\r\nend","test_suite":"%%\r\nx = 1;\r\ny_correct = '0001';\r\nassert(isequal(bin2bcd(x),y_correct))\r\n%%\r\nx = 5;\r\ny_correct = '0101';\r\nassert(isequal(bin2bcd(x),y_correct))\r\n%%\r\nx = 12;\r\ny_correct = '00010010';\r\nassert(isequal(bin2bcd(x),y_correct))\r\n%%\r\nx = 156;\r\ny_correct = '000101010110';\r\nassert(isequal(bin2bcd(x),y_correct))\r\n","published":true,"deleted":false,"likes_count":5,"comments_count":0,"created_by":27760,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":152,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":45,"created_at":"2014-10-13T13:38:17.000Z","updated_at":"2026-03-11T18:20:21.000Z","published_at":"2014-10-13T13:38:17.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\u003eConvert from decimal representation to\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://en.wikipedia.org/wiki/Binary-coded_decimal\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eBinary Code Decimal\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e (or BCD) representation.\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\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\u003eSo 5 becomes '0101'\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\u003e12 is '00010010' (because 1 is '0001' and 2 is '0010')\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\u003e156 is '000101010110'\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":751,"title":"Implement simple rotation cypher","description":"If given a letter from the set:\r\n\r\n  [abc...xyz]\r\n\r\nand a shift, implement a shift cypher.\r\n\r\nExample:\r\n\r\n  'abc' \r\n\r\nwith a shift of -1 yields\r\n\r\n  'zab'\r\n\r\n\r\n\r\n\r\n","description_html":"\u003cp\u003eIf given a letter from the set:\u003c/p\u003e\u003cpre class=\"language-matlab\"\u003e[abc...xyz]\r\n\u003c/pre\u003e\u003cp\u003eand a shift, implement a shift cypher.\u003c/p\u003e\u003cp\u003eExample:\u003c/p\u003e\u003cpre class=\"language-matlab\"\u003e'abc' \r\n\u003c/pre\u003e\u003cp\u003ewith a shift of -1 yields\u003c/p\u003e\u003cpre class=\"language-matlab\"\u003e'zab'\r\n\u003c/pre\u003e","function_template":"function outStr = cypher(inStr, shift)\r\n  outStr = inStr;\r\nend","test_suite":"%%\r\ninStr = 'doug';\r\nshift = 10;\r\noutStr = 'nyeq';\r\n\r\nassert(isequal(cypher(inStr, shift),outStr))\r\n\r\n%%\r\ninStr = 'thequickbrownfox';\r\nshift = 5;\r\noutStr = 'ymjvznhpgwtbsktc';\r\n\r\nassert(isequal(cypher(inStr, shift),outStr))\r\n\r\n%%\r\ninStr = 'thecrowfliesatmidnight';\r\nshift = 22;\r\noutStr = 'pdaynksbheaowpiezjecdp';\r\n\r\nassert(isequal(cypher(inStr, shift),outStr))","published":true,"deleted":false,"likes_count":13,"comments_count":2,"created_by":240,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":1096,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":6,"created_at":"2012-06-06T15:38:43.000Z","updated_at":"2026-02-19T13:12:57.000Z","published_at":"2012-06-08T19:08:23.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\u003eIf given a letter from the set:\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[[abc...xyz]]]\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\u003eand a shift, implement a shift cypher.\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\u003eExample:\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['abc']]\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\u003ewith a shift of -1 yields\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['zab']]\u003e\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":43972,"title":"Binary code for an analog signal","description":"Digitization of a signal consists of 3 stages: sampling, quantization and encoding.\r\nSampling convert the analogue signal into pulses, quantization adjust the amplitude of the sampled signal, encoding is the process of assigning each quantised sample with a binary code.\r\nWrite a function that will return the binary code (BitCode {char matrix of size 5,6}) for 5 different voltage levels (AnalogValue{double mattrix of size 1,5}), with maximum and minimum value of (xmin, xmax).\r\nThe Number of bits will be provided as (NoBits)","description_html":"\u003cdiv style = \"text-align: start; line-height: 20.4333px; min-height: 0px; white-space: normal; color: rgb(0, 0, 0); font-family: Menlo, Monaco, Consolas, monospace; font-style: normal; font-size: 14px; font-weight: 400; text-decoration: rgb(0, 0, 0); white-space: normal; \"\u003e\u003cdiv style=\"block-size: 153px; display: block; min-width: 0px; padding-block-start: 0px; padding-top: 0px; perspective-origin: 407px 76.5px; transform-origin: 407px 76.5px; vertical-align: baseline; \"\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 254px 8px; transform-origin: 254px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eDigitization of a signal consists of 3 stages: sampling, quantization and encoding.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 42px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 21px; text-align: left; transform-origin: 384px 21px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 384px 8px; transform-origin: 384px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eSampling convert the analogue signal into pulses, quantization adjust the amplitude of the sampled signal, encoding is the process of assigning each quantised sample with a binary code.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 42px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 21px; text-align: left; transform-origin: 384px 21px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 345.5px 8px; transform-origin: 345.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eWrite a function that will return the binary code (BitCode {char matrix of size 5,6}) for 5 different voltage levels (AnalogValue{double mattrix of size 1,5}), with maximum and minimum value of (xmin, xmax).\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 147px 8px; transform-origin: 147px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThe Number of bits will be provided as (NoBits)\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e","function_template":"function BitCode = Digitization (NoBits,AnalogValue,xmin,xmax)\r\n  Bitcode = ['0''0''0''0''0''0'];\r\nend","test_suite":"%%\r\nNoBits =6;\r\nxmin = -5;\r\nxmax = 5;\r\nAnalogValue = [-2 -1 0 1 2];\r\nBitCode=['010011' ; '011010' ; '100000' ; '100110' ; '101101'];\r\nassert(isequal(Digitization(NoBits,AnalogValue,xmin,xmax),BitCode))\r\n","published":true,"deleted":false,"likes_count":1,"comments_count":0,"created_by":108527,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":15,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2016-12-28T14:31:24.000Z","updated_at":"2025-12-02T20:00:38.000Z","published_at":"2016-12-28T14:32:42.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eDigitization of a signal consists of 3 stages: sampling, quantization and encoding.\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\u003eSampling convert the analogue signal into pulses, quantization adjust the amplitude of the sampled signal, encoding is the process of assigning each quantised sample with a binary code.\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\u003eWrite a function that will return the binary code (BitCode {char matrix of size 5,6}) for 5 different voltage levels (AnalogValue{double mattrix of size 1,5}), with maximum and minimum value of (xmin, xmax).\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe Number of bits will be provided as (NoBits)\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\",\"relationship\":null}],\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"target\":\"/matlab/document.xml\",\"relationshipId\":\"rId1\"}]}"},{"id":45279,"title":"Cryptography with A Square Matrix : Encoding","description":"Matrix inverse operation can be used to encode or decode of a message. For example \r\n\r\n    text = 'matlab \u0026 cody'. \r\n\r\nnumeric equivalent is \r\n\r\n    num = [109 97 116 108 97 98 32 38 32 99 111 100 121]\r\n\r\n\r\nlet \r\n\r\n   key = magic(3);\r\n\r\n\r\n*key* is an arbitrary square matrix and its inverse is exist. \r\n\r\nreshape the vector *num* so it has the same number of rows with *key* matrix\r\n\r\n   numMatrix = [109 108 32 99 121;\r\n                 97 97 38 111 32;\r\n                116 98 32 100 32];\r\n\r\nNote that last two elements are filled with 32 which is the numeric equivalent of blank character ' '.\r\n\r\nFinally multiply *key* with *numMatrix* (and reshape it) to obtain an encoded vector.\r\n\r\n   encodedVector= [1665 1624 1541 1549 1495 1501 486 510 534 1503 1552 1595 1192 747 836]\r\n\r\nif you multiply *inverse of key* with reshaped *encodedVector* you can obtain the ascii numbers of secret message.\r\n\r\nNext Problem : \u003chttps://www.mathworks.com/matlabcentral/cody/problems/45282-cyrptography-with-a-square-matrix-decoding Cryptography with A Square Matrix : Decoding\u003e\r\n\r\nInspired from:\r\n\r\nBarnett, R.A., Ziegler, M.R. and Byleen, K.E. (2015). Finite Mathematics for Business, Economics, Life Sciences, and Social Sciences. Pearson, 13th (Global) Edition. p:245-247.","description_html":"\u003cp\u003eMatrix inverse operation can be used to encode or decode of a message. For example\u003c/p\u003e\u003cpre\u003e    text = 'matlab \u0026 cody'. \u003c/pre\u003e\u003cp\u003enumeric equivalent is\u003c/p\u003e\u003cpre\u003e    num = [109 97 116 108 97 98 32 38 32 99 111 100 121]\u003c/pre\u003e\u003cp\u003elet\u003c/p\u003e\u003cpre\u003e   key = magic(3);\u003c/pre\u003e\u003cp\u003e\u003cb\u003ekey\u003c/b\u003e is an arbitrary square matrix and its inverse is exist.\u003c/p\u003e\u003cp\u003ereshape the vector \u003cb\u003enum\u003c/b\u003e so it has the same number of rows with \u003cb\u003ekey\u003c/b\u003e matrix\u003c/p\u003e\u003cpre\u003e   numMatrix = [109 108 32 99 121;\r\n                 97 97 38 111 32;\r\n                116 98 32 100 32];\u003c/pre\u003e\u003cp\u003eNote that last two elements are filled with 32 which is the numeric equivalent of blank character ' '.\u003c/p\u003e\u003cp\u003eFinally multiply \u003cb\u003ekey\u003c/b\u003e with \u003cb\u003enumMatrix\u003c/b\u003e (and reshape it) to obtain an encoded vector.\u003c/p\u003e\u003cpre\u003e   encodedVector= [1665 1624 1541 1549 1495 1501 486 510 534 1503 1552 1595 1192 747 836]\u003c/pre\u003e\u003cp\u003eif you multiply \u003cb\u003einverse of key\u003c/b\u003e with reshaped \u003cb\u003eencodedVector\u003c/b\u003e you can obtain the ascii numbers of secret message.\u003c/p\u003e\u003cp\u003eNext Problem : \u003ca href = \"https://www.mathworks.com/matlabcentral/cody/problems/45282-cyrptography-with-a-square-matrix-decoding\"\u003eCryptography with A Square Matrix : Decoding\u003c/a\u003e\u003c/p\u003e\u003cp\u003eInspired from:\u003c/p\u003e\u003cp\u003eBarnett, R.A., Ziegler, M.R. and Byleen, K.E. (2015). Finite Mathematics for Business, Economics, Life Sciences, and Social Sciences. Pearson, 13th (Global) Edition. p:245-247.\u003c/p\u003e","function_template":"function encodedVector = encodeMessage(inputString,keyMatrix)\r\n\r\nend","test_suite":"%%\r\ninputString = 'matlab and cody';\r\nkeyMatrix = magic(3);\r\ny_correct = [1665 1624 1541 1549 1495 1501 1013 1351 1221 1426 1153 886 1714 1680 1586 480 480 480];\r\nassert(isequal(encodeMessage(inputString, keyMatrix),y_correct))\r\n\r\n%%\r\ninputString = 'matlab and cody'\r\nkeyMatrix = magic(5);\r\ny_correct = [6616 6868 6820 7017 6934 4911 6233 6245 5817 5199 5646 5344 6827 6080 6198 2080 2080 2080 2080 2080];\r\nassert(isequal(encodeMessage(inputString, keyMatrix),y_correct))\r\n\r\n%%\r\ninputString = 'Hello worlD!!';\r\nkeyMatrix = magic(3);\r\ny_correct = [1325 1477 1413 1167 1103 1495 1747 1710 1703 1130 895 1110 488 483 484];\r\nassert(isequal(encodeMessage(inputString, keyMatrix),y_correct))\r\n\r\n%%\r\ninputString = 'Hello worlD!!'\r\nkeyMatrix = magic(5);\r\ny_correct = [6285 6205 6900 6585 6525 6043 5432 6941 6575 6469 2717 2920 2243 2471 2519];\r\nassert(isequal(encodeMessage(inputString, keyMatrix),y_correct))\r\n\r\n\r\n%%\r\ninputString = 'What a wonderful day!'\r\nkeyMatrix = [41 6; 46 46];\r\ny_correct = [4191 8786 4673 9798 1894 5934 2026 6946 5211 10166 4706 9246 5286 9936 5445 10350 1912 6072 4703 10028 1545 2990];\r\nassert(isequal(encodeMessage(inputString, keyMatrix),y_correct))\r\n\r\n\r\n%%\r\ninputString = '3'\r\nkeyMatrix = [41 6; 46 46];\r\ny_correct = [2283 3818];\r\nassert(isequal(encodeMessage(inputString, keyMatrix),y_correct))\r\n\r\n","published":true,"deleted":false,"likes_count":2,"comments_count":3,"created_by":8703,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":10,"test_suite_updated_at":"2020-01-28T16:27:49.000Z","rescore_all_solutions":false,"group_id":1,"created_at":"2020-01-27T13:50:56.000Z","updated_at":"2026-04-04T01:54:32.000Z","published_at":"2020-01-28T08:56:27.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\u003eMatrix inverse operation can be used to encode or decode of a message. For example\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[    text = 'matlab \u0026 cody'.]]\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\u003enumeric equivalent is\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[    num = [109 97 116 108 97 98 32 38 32 99 111 100 121]]]\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\u003elet\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[   key = magic(3);]]\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\u003ekey\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e is an arbitrary square matrix and its inverse is exist.\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\u003ereshape the vector\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003enum\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e so it has the same number of rows with\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ekey\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e matrix\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[   numMatrix = [109 108 32 99 121;\\n                 97 97 38 111 32;\\n                116 98 32 100 32];]]\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\u003eNote that last two elements are filled with 32 which is the numeric equivalent of blank character ' '.\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\u003eFinally multiply\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ekey\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e with\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003enumMatrix\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e (and reshape it) to obtain an encoded vector.\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[   encodedVector= [1665 1624 1541 1549 1495 1501 486 510 534 1503 1552 1595 1192 747 836]]]\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\u003eif you multiply\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003einverse of key\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e with reshaped\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eencodedVector\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e you can obtain the ascii numbers of secret message.\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\u003eNext Problem :\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=\\\"https://www.mathworks.com/matlabcentral/cody/problems/45282-cyrptography-with-a-square-matrix-decoding\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eCryptography with A Square Matrix : Decoding\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\u003eInspired from:\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\u003eBarnett, R.A., Ziegler, M.R. and Byleen, K.E. (2015). Finite Mathematics for Business, Economics, Life Sciences, and Social Sciences. Pearson, 13th (Global) Edition. p:245-247.\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":40,"title":"Reverse Run-Length Encoder","description":"Given a \"counting sequence\" vector x, construct the original sequence y.\n\nA counting sequence is formed by \"counting\" the entries in a given sequence. This is sometimes called run-length encoding.\n\nFor example, the sequence\n\n x = 2, 5, 1, 2, 4, 1, 1, 3\n\ncan be read as\n\n Two 5's, one 2, four 1's, one 3\n\nwhich translates to\n\n y = 5, 5, 2, 1, 1, 1, 1, 3\n\nSo y is the reconstructed vector that corresponds to the counting sequence x.\n\nFor this problem, all elements in the sequences x and y will be in the range from 1 to 9.","description_html":"\u003cp\u003eGiven a \"counting sequence\" vector x, construct the original sequence y.\u003c/p\u003e\u003cp\u003eA counting sequence is formed by \"counting\" the entries in a given sequence. This is sometimes called run-length encoding.\u003c/p\u003e\u003cp\u003eFor example, the sequence\u003c/p\u003e\u003cpre\u003e x = 2, 5, 1, 2, 4, 1, 1, 3\u003c/pre\u003e\u003cp\u003ecan be read as\u003c/p\u003e\u003cpre\u003e Two 5's, one 2, four 1's, one 3\u003c/pre\u003e\u003cp\u003ewhich translates to\u003c/p\u003e\u003cpre\u003e y = 5, 5, 2, 1, 1, 1, 1, 3\u003c/pre\u003e\u003cp\u003eSo y is the reconstructed vector that corresponds to the counting sequence x.\u003c/p\u003e\u003cp\u003eFor this problem, all elements in the sequences x and y will be in the range from 1 to 9.\u003c/p\u003e","function_template":"function y = RevCountSeq(x)\n  y = x;\nend","test_suite":"%%\nx = [2 5 1 2 4 1 1 3];\ncorrect = [5 5 2 1 1 1 1 3];\nassert(isequal(correct, RevCountSeq(x)));\n\n\n%%\nx = [1 9];\ncorrect = [9];\nassert(isequal(correct, RevCountSeq(x)));\n\n\n%%\nx = [9 1];\ncorrect = ones(1,9);\nassert(isequal(correct, RevCountSeq(x)));\n\n\n%%\nx = [1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9];\ncorrect = 1:9;\nassert(isequal(correct, RevCountSeq(x)));","published":true,"deleted":false,"likes_count":19,"comments_count":5,"created_by":1,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":2720,"test_suite_updated_at":"2012-01-18T01:00:22.000Z","rescore_all_solutions":false,"group_id":2,"created_at":"2012-01-18T01:00:22.000Z","updated_at":"2026-03-03T18:38:55.000Z","published_at":"2012-01-18T01:00:22.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\u003eGiven a \\\"counting sequence\\\" vector x, construct the original sequence y.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eA counting sequence is formed by \\\"counting\\\" the entries in a given sequence. This is sometimes called run-length encoding.\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\u003eFor example, the sequence\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[ x = 2, 5, 1, 2, 4, 1, 1, 3]]\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\u003ecan be read as\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[ Two 5's, one 2, four 1's, one 3]]\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\u003ewhich translates to\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[ y = 5, 5, 2, 1, 1, 1, 1, 3]]\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 y is the reconstructed vector that corresponds to the counting sequence x.\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\u003eFor this problem, all elements in the sequences x and y will be in the range from 1 to 9.\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":42283,"title":"Look and say Conway's sequence","description":"In mathematics, the look-and-say sequence is the sequence of integers beginning as follows:\r\n\r\n1, 11, 21, 1211, 111221, 312211, 13112221, 1113213211, ... (sequence A005150 in OEIS).\r\nTo generate a member of the sequence from the previous member, read off the digits of the previous member, counting the number of digits in groups of the same digit. For example:\r\n\r\n* 1 is read off as \"one 1\" or 11.\r\n* 11 is read off as \"two 1s\" or 21\r\n* 21 is read off as \"one 2, then one 1\" or 1211\r\n* 1211 is read off as \"one 1, then one 2, then two 1s\" or 111221\r\n* 111221 is read off as \"three 1s, then two 2s, then one 1\" or 312211.\r\n\r\nThe look-and-say sequence was introduced and analyzed by John Conway.\r\n\r\nSo, starting from a seed and a length, the output is a nx1 cell array of strings containing the Conway's sequence.","description_html":"\u003cp\u003eIn mathematics, the look-and-say sequence is the sequence of integers beginning as follows:\u003c/p\u003e\u003cp\u003e1, 11, 21, 1211, 111221, 312211, 13112221, 1113213211, ... (sequence A005150 in OEIS).\r\nTo generate a member of the sequence from the previous member, read off the digits of the previous member, counting the number of digits in groups of the same digit. For example:\u003c/p\u003e\u003cul\u003e\u003cli\u003e1 is read off as \"one 1\" or 11.\u003c/li\u003e\u003cli\u003e11 is read off as \"two 1s\" or 21\u003c/li\u003e\u003cli\u003e21 is read off as \"one 2, then one 1\" or 1211\u003c/li\u003e\u003cli\u003e1211 is read off as \"one 1, then one 2, then two 1s\" or 111221\u003c/li\u003e\u003cli\u003e111221 is read off as \"three 1s, then two 2s, then one 1\" or 312211.\u003c/li\u003e\u003c/ul\u003e\u003cp\u003eThe look-and-say sequence was introduced and analyzed by John Conway.\u003c/p\u003e\u003cp\u003eSo, starting from a seed and a length, the output is a nx1 cell array of strings containing the Conway's sequence.\u003c/p\u003e","function_template":"function serie=lasnumber(seed,n)\r\n  serie = x;\r\nend","test_suite":"%%\r\nseed = 1; n=5;\r\ny_correct = {'1';'11';'21';'1211';'111221'};\r\nassert(isequal(lasnumber(seed,n),y_correct))\r\n\r\n%%\r\nseed = 4; n=10;\r\ny_correct = {'4';'14';'1114';'3114';'132114';'1113122114';'311311222114';'13211321322114';'1113122113121113222114';'31131122211311123113322114'};\r\nassert(isequal(lasnumber(seed,n),y_correct))\r\n\r\n%%\r\nseed = 22; n=5;\r\ny_correct = {'22';'22';'22';'22';'22'}\r\nassert(isequal(lasnumber(seed,n),y_correct))","published":true,"deleted":false,"likes_count":4,"comments_count":0,"created_by":894,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":29,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2015-04-27T15:46:47.000Z","updated_at":"2026-03-03T19:41:36.000Z","published_at":"2015-04-27T15:46:55.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\u003eIn mathematics, the look-and-say sequence is the sequence of integers beginning as follows:\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, 11, 21, 1211, 111221, 312211, 13112221, 1113213211, ... (sequence A005150 in OEIS). To generate a member of the sequence from the previous member, read off the digits of the previous member, counting the number of digits in groups of the same digit. For example:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e1 is read off as \\\"one 1\\\" or 11.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e11 is read off as \\\"two 1s\\\" or 21\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e21 is read off as \\\"one 2, then one 1\\\" or 1211\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e1211 is read off as \\\"one 1, then one 2, then two 1s\\\" or 111221\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e111221 is read off as \\\"three 1s, then two 2s, then one 1\\\" or 312211.\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 look-and-say sequence was introduced and analyzed by John Conway.\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, starting from a seed and a length, the output is a nx1 cell array of strings containing the Conway's sequence.\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":227,"title":"Math with Roman Numerals","description":"Given a function R within (+,-,*,/) and two Roman numerals a \u0026 b, compute aRb in Roman numerals.","description_html":"\u003cp\u003eGiven a function R within (+,-,*,/) and two Roman numerals a \u0026 b, compute aRb in Roman numerals.\u003c/p\u003e","function_template":"function y = numeri_romani(fcn,nbA,nbB)\r\n  y = (fcn,nbA,nbB);\r\nend","test_suite":"%%\r\nassert(isequal(numeri_romani('+','I','I'),'II'))\r\n\r\n%%\r\nassert(isequal(numeri_romani('-','X','I'),'IX'))\r\n\r\n%%\r\nassert(isequal(numeri_romani('*','X','X'),'C'))\r\n\r\n%%\r\nassert(isequal(numeri_romani('+',numeri_romani('*','XXV','XX'),numeri_romani('+','IV','V')),'DIX'))\r\n","published":true,"deleted":false,"likes_count":1,"comments_count":0,"created_by":659,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":99,"test_suite_updated_at":"2014-10-14T14:24:43.000Z","rescore_all_solutions":false,"group_id":38,"created_at":"2012-02-02T09:52:13.000Z","updated_at":"2026-03-31T17:43:38.000Z","published_at":"2012-02-02T09:52:13.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\u003eGiven a function R within (+,-,*,/) and two Roman numerals a \u0026amp; b, compute aRb in Roman numerals.\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":78,"title":"Implement a ROT13 cipher","description":"Replace each character in string s1 with the character that is shifted 13 positions from it (wrap back to the beginning if necessary). So A ? N, B ? O, and so on until Y ? L and Z ? M. Case of the output should match the case of the input, so a ? n. Non-alphabetic characters are left in place and untouched.\n\nIf\n\n s1 = 'I love MATLAB'\n\nthen\n\n s2 = 'V ybir ZNGYNO'\n\nSee the \u003chttp://en.wikipedia.org/wiki/ROT13 Wikipedia article\u003e for more info.","description_html":"\u003cp\u003eReplace each character in string s1 with the character that is shifted 13 positions from it (wrap back to the beginning if necessary). So A ? N, B ? O, and so on until Y ? L and Z ? M. Case of the output should match the case of the input, so a ? n. Non-alphabetic characters are left in place and untouched.\u003c/p\u003e\u003cp\u003eIf\u003c/p\u003e\u003cpre\u003e s1 = 'I love MATLAB'\u003c/pre\u003e\u003cp\u003ethen\u003c/p\u003e\u003cpre\u003e s2 = 'V ybir ZNGYNO'\u003c/pre\u003e\u003cp\u003eSee the \u003ca href=\"http://en.wikipedia.org/wiki/ROT13\"\u003eWikipedia article\u003c/a\u003e for more info.\u003c/p\u003e","function_template":"function s2 = rot13(s1)\n  s2 = s1;\nend","test_suite":"%% Test #1\n\ns1 = 'I love MATLAB';\ns2_correct = 'V ybir ZNGYNO';\nassert(isequal(rot13(s1),s2_correct))\n\n%% Test #2\n\ns1 = 'I \u003c3 MATLAB!!';\ns2_correct = 'V \u003c3 ZNGYNO!!';\nassert(isequal(rot13(s1),s2_correct))\n\n%% Test #3\n\ns1 = 'The quick fox stumbled over the confusing instructions.';\ns2_correct = 'Gur dhvpx sbk fghzoyrq bire gur pbashfvat vafgehpgvbaf.';\nassert(isequal(rot13(s1),s2_correct))\n\n%% Test #4\n\ns1 = 'Snape kills Dumbledore on page 606. Also, there is no Santa.';\ns2_correct = 'Fancr xvyyf Qhzoyrqber ba cntr 606. Nyfb, gurer vf ab Fnagn.';\nassert(isequal(rot13(s1),s2_correct))\n\n","published":true,"deleted":false,"likes_count":13,"comments_count":3,"created_by":1,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":1713,"test_suite_updated_at":"2012-01-18T01:00:28.000Z","rescore_all_solutions":false,"group_id":2,"created_at":"2012-01-18T01:00:28.000Z","updated_at":"2026-01-06T04:39:32.000Z","published_at":"2012-01-18T01:00:28.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\u003eReplace each character in string s1 with the character that is shifted 13 positions from it (wrap back to the beginning if necessary). So A ? N, B ? O, and so on until Y ? L and Z ? M. Case of the output should match the case of the input, so a ? n. Non-alphabetic characters are left in place and untouched.\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\u003eIf\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[ s1 = 'I love MATLAB']]\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\u003ethen\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[ s2 = 'V ybir ZNGYNO']]\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\u003eSee the\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"http://en.wikipedia.org/wiki/ROT13\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eWikipedia article\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e for more info.\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":1288,"title":"Balanced Ternary Numbers: Easy as |, |-, |o","description":"This problem concerns the so-called \u003chttp://en.wikipedia.org/wiki/Balanced_ternary balanced ternary\u003e system for representing numbers. It is a Base 3 system in which the digits can be 1, 0, or -1. \r\n\r\nIn balanced ternary, the number 8 would be represented as 9 (or 3^2) minus 1 (or 3^0). Typographically we will use \"|\" for one, \"o\" for zero (that's a lower-case O), and \"-\" for negative one. So if the decimal input d is the number 8, the balanced ternary output is the string \"|o-\". Thus\r\n \r\n dec 8  =\u003e bt \"|o-\"\r\n\r\nHere are some more examples.\r\n\r\n dec 3  =\u003e bt \"|o\"\r\n dec 15 =\u003e bt \"|--o\"\r\n dec 52 =\u003e bt \"|-o-|\"\r\n \r\nGiven an integer d, return the string bt. Leading zeros should always be suppressed.","description_html":"\u003cp\u003eThis problem concerns the so-called \u003ca href = \"http://en.wikipedia.org/wiki/Balanced_ternary\"\u003ebalanced ternary\u003c/a\u003e system for representing numbers. It is a Base 3 system in which the digits can be 1, 0, or -1.\u003c/p\u003e\u003cp\u003eIn balanced ternary, the number 8 would be represented as 9 (or 3^2) minus 1 (or 3^0). Typographically we will use \"|\" for one, \"o\" for zero (that's a lower-case O), and \"-\" for negative one. So if the decimal input d is the number 8, the balanced ternary output is the string \"|o-\". Thus\u003c/p\u003e\u003cpre\u003e dec 8  =\u003e bt \"|o-\"\u003c/pre\u003e\u003cp\u003eHere are some more examples.\u003c/p\u003e\u003cpre\u003e dec 3  =\u003e bt \"|o\"\r\n dec 15 =\u003e bt \"|--o\"\r\n dec 52 =\u003e bt \"|-o-|\"\u003c/pre\u003e\u003cp\u003eGiven an integer d, return the string bt. Leading zeros should always be suppressed.\u003c/p\u003e","function_template":"function bt = balanced_ternary(d)\r\n  bt = 'o';\r\nend","test_suite":"%%\r\nd = 3;\r\nbt_correct = '|o';\r\nbt = balanced_ternary(d);\r\nassert(isequal(bt,bt_correct))\r\n\r\n%%\r\nd = 52;\r\nbt_correct = '|-o-|';\r\nbt = balanced_ternary(d);\r\nassert(isequal(bt,bt_correct))\r\n\r\n%%\r\nd = 182;\r\nbt_correct = '|-|-|-';\r\nbt = balanced_ternary(d);\r\nassert(isequal(bt,bt_correct))\r\n\r\n%%\r\nd = 26;\r\nbt_correct = '|oo-';\r\nbt = balanced_ternary(d);\r\nassert(isequal(bt,bt_correct))\r\n\r\n%%\r\nd = -5;\r\nbt_correct = '-||';\r\nbt = balanced_ternary(d);\r\nassert(isequal(bt,bt_correct))\r\n\r\n%%\r\nd = -164;\r\nbt_correct = '-|oo-|';\r\nbt = balanced_ternary(d);\r\nassert(isequal(bt,bt_correct))\r\n\r\n%%\r\nd = 512;\r\nbt_correct = '|-o|oo-';\r\nbt = balanced_ternary(d);\r\nassert(isequal(bt,bt_correct))\r\n\r\n","published":true,"deleted":false,"likes_count":3,"comments_count":1,"created_by":7,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":74,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2013-02-21T23:26:14.000Z","updated_at":"2026-04-03T19:20:00.000Z","published_at":"2013-02-21T23:36:53.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\u003eThis problem concerns the so-called\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://en.wikipedia.org/wiki/Balanced_ternary\\\"\u003e\u003cw:r\u003e\u003cw:t\u003ebalanced ternary\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e system for representing numbers. It is a Base 3 system in which the digits can be 1, 0, or -1.\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\u003eIn balanced ternary, the number 8 would be represented as 9 (or 3^2) minus 1 (or 3^0). Typographically we will use \\\"|\\\" for one, \\\"o\\\" for zero (that's a lower-case O), and \\\"-\\\" for negative one. So if the decimal input d is the number 8, the balanced ternary output is the string \\\"|o-\\\". Thus\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[ dec 8  =\u003e bt \\\"|o-\\\"]]\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\u003eHere are some more examples.\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[ dec 3  =\u003e bt \\\"|o\\\"\\n dec 15 =\u003e bt \\\"|--o\\\"\\n dec 52 =\u003e bt \\\"|-o-|\\\"]]\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\u003eGiven an integer d, return the string bt. Leading zeros should always be suppressed.\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":55,"title":"Counting Sequence","description":"Given a vector x, find the \"counting sequence\" y.\r\n\r\nA counting sequence is formed by \"counting\" the entries in a given sequence.\r\n\r\nFor example, the sequence\r\n\r\n x = 5, 5, 2, 1, 1, 1, 1, 3\r\n\r\ncan be read as\r\n\r\n Two 5's, one 2, four 1's, one 3\r\n\r\nwhich translates to\r\n\r\n y = 2, 5, 1, 2, 4, 1, 1, 3\r\n\r\nSo y is the counting sequence for x.\r\n\r\nFor this problem, all elements in the sequences x and y will be in the range from 1 to 9.\r\n","description_html":"\u003cp\u003eGiven a vector x, find the \"counting sequence\" y.\u003c/p\u003e\u003cp\u003eA counting sequence is formed by \"counting\" the entries in a given sequence.\u003c/p\u003e\u003cp\u003eFor example, the sequence\u003c/p\u003e\u003cpre\u003e x = 5, 5, 2, 1, 1, 1, 1, 3\u003c/pre\u003e\u003cp\u003ecan be read as\u003c/p\u003e\u003cpre\u003e Two 5's, one 2, four 1's, one 3\u003c/pre\u003e\u003cp\u003ewhich translates to\u003c/p\u003e\u003cpre\u003e y = 2, 5, 1, 2, 4, 1, 1, 3\u003c/pre\u003e\u003cp\u003eSo y is the counting sequence for x.\u003c/p\u003e\u003cp\u003eFor this problem, all elements in the sequences x and y will be in the range from 1 to 9.\u003c/p\u003e","function_template":"function y = CountSeq(x)\r\ny = x;\r\nend","test_suite":"%%\r\nx = [5 5 2 1 1 1 1 3];\r\ncorrect = [2 5 1 2 4 1 1 3];\r\nassert(isequal(correct, CountSeq(x)));\r\n\r\n\r\n%%\r\nx = [9];\r\ncorrect = [1 9];\r\nassert(isequal(correct, CountSeq(x)));\r\n\r\n\r\n%%\r\nx = ones(1,9);\r\ncorrect = [9 1];\r\nassert(isequal(correct, CountSeq(x)));\r\n\r\n\r\n%%\r\nx = 1:9;\r\ncorrect = [1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9];\r\nassert(isequal(correct, CountSeq(x)));\r\n\r\n%%\r\nx = [1 2 2 1];\r\ncorrect = [1 1 2 2 1 1];\r\nassert(isequal(correct, CountSeq(x)));\r\n\r\n","published":true,"deleted":false,"likes_count":30,"comments_count":13,"created_by":1,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":2180,"test_suite_updated_at":"2013-03-14T15:22:01.000Z","rescore_all_solutions":false,"group_id":2,"created_at":"2012-01-18T01:00:25.000Z","updated_at":"2026-03-24T23:58:28.000Z","published_at":"2012-01-18T01:00:25.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\u003eGiven a vector x, find the \\\"counting sequence\\\" y.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eA counting sequence is formed by \\\"counting\\\" the entries in a given sequence.\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\u003eFor example, the sequence\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[ x = 5, 5, 2, 1, 1, 1, 1, 3]]\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\u003ecan be read as\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[ Two 5's, one 2, four 1's, one 3]]\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\u003ewhich translates to\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[ y = 2, 5, 1, 2, 4, 1, 1, 3]]\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 y is the counting sequence for x.\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\u003eFor this problem, all elements in the sequences x and y will be in the range from 1 to 9.\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":63,"title":"Encode Roman Numerals","description":"Create a function taking a non-negative integer as its parameter and returning a string containing the Roman Numeral representation of that integer.\r\nBy convention, \"modern\" Roman numerals are written by expressing each digit separately starting with the leftmost digit and skipping any digit with a value of zero.\r\nExamples\r\nIf n is 1990 then romStr = 'MCMXC' since 1000=M, 900=CM, 90=XC.\r\nIf n is 2008 then romStr = 'MMVIII' since 2000=MM, 8=VIII.\r\nIf n is 1666 then romStr = 'MDCLXVI'.\r\nIf n is 0 then romStr is empty ([] and '' are both acceptable)\r\nn will always be an integer between 0 and 3999 (inclusive).\r\nThis problem is adapted from Rosetta Code.","description_html":"\u003cdiv style = \"text-align: start; line-height: 20.4333px; min-height: 0px; white-space: normal; color: rgb(0, 0, 0); font-family: Menlo, Monaco, Consolas, monospace; font-style: normal; font-size: 14px; font-weight: 400; text-decoration: rgb(0, 0, 0); white-space: normal; \"\u003e\u003cdiv style=\"block-size: 285.733px; display: block; min-width: 0px; padding-block-start: 0px; padding-top: 0px; perspective-origin: 407px 142.867px; transform-origin: 407px 142.867px; vertical-align: baseline; \"\u003e\u003cdiv style=\"block-size: 42px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 21px; text-align: left; transform-origin: 384px 21px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 373px 8px; transform-origin: 373px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eCreate a function taking a non-negative integer as its parameter and returning a string containing the Roman Numeral representation of that integer.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 42px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 21px; text-align: left; transform-origin: 384px 21px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 376px 8px; transform-origin: 376px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eBy convention, \"modern\" Roman numerals are written by expressing each digit separately starting with the leftmost digit and skipping any digit with a value of zero.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 30px 8px; transform-origin: 30px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eExamples\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cul style=\"block-size: 81.7333px; counter-reset: list-item 0; font-family: Helvetica, Arial, sans-serif; list-style-type: square; margin-block-end: 20px; margin-block-start: 10px; margin-bottom: 20px; margin-top: 10px; perspective-origin: 391px 40.8667px; transform-origin: 391px 40.8667px; margin-top: 10px; margin-bottom: 20px; \"\u003e\u003cli style=\"block-size: 20.4333px; counter-reset: none; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 363px 10.2167px; text-align: left; transform-origin: 363px 10.2167px; white-space: pre-wrap; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 213px 8px; transform-origin: 213px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eIf n is 1990 then romStr = 'MCMXC' since 1000=M, 900=CM, 90=XC.\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"block-size: 20.4333px; counter-reset: none; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 363px 10.2167px; text-align: left; transform-origin: 363px 10.2167px; white-space: pre-wrap; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 179px 8px; transform-origin: 179px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eIf n is 2008 then romStr = 'MMVIII' since 2000=MM, 8=VIII.\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"block-size: 20.4333px; counter-reset: none; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 363px 10.2167px; text-align: left; transform-origin: 363px 10.2167px; white-space: pre-wrap; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 116px 8px; transform-origin: 116px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eIf n is 1666 then romStr = 'MDCLXVI'.\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"block-size: 20.4333px; counter-reset: none; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 363px 10.2167px; text-align: left; transform-origin: 363px 10.2167px; white-space: pre-wrap; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 184.5px 8px; transform-origin: 184.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eIf n is 0 then romStr is empty ([] and '' are both acceptable)\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003c/ul\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 184.5px 8px; transform-origin: 184.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003en will always be an integer between 0 and 3999 (inclusive).\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 92px 8px; transform-origin: 92px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-style: italic; \"\u003eThis problem is adapted from\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 2px 8px; transform-origin: 2px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-style: italic; \"\u003e \u003c/span\u003e\u003c/span\u003e\u003ca target='_blank' href = \"/#null\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"font-style: italic; \"\u003eRosetta Code\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 2px 8px; transform-origin: 2px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-style: italic; \"\u003e.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e","function_template":"function romStr = dec2rom(n)\r\n  romStr = 'I';\r\nend","test_suite":"%%\r\nx = 1990;\r\ny_correct = 'MCMXC';\r\nassert(isequal(dec2rom(x),y_correct))\r\n\r\n%%\r\nx = 2008;\r\ny_correct = 'MMVIII';\r\nassert(isequal(dec2rom(x),y_correct))\r\n\r\n%%\r\nx = 1666;\r\ny_correct = 'MDCLXVI';\r\nassert(isequal(dec2rom(x),y_correct))\r\n\r\n%%\r\nx = 444;\r\ny_correct = 'CDXLIV';\r\nassert(isequal(dec2rom(x),y_correct))\r\n\r\n%%\r\nx = 199;\r\ny_correct = 'CXCIX';\r\nassert(isequal(dec2rom(x),y_correct))\r\n\r\n%%\r\nx = 49;\r\ny_correct = 'XLIX';\r\nassert(isequal(dec2rom(x),y_correct))\r\n\r\n%%\r\nx = 14;\r\ny_correct = 'XIV';\r\nassert(isequal(dec2rom(x),y_correct))\r\n\r\n%%\r\nx = 0;\r\ny_correct = '';\r\nassert(isempty(dec2rom(x)))\r\n","published":true,"deleted":false,"likes_count":16,"comments_count":1,"created_by":1,"edited_by":223089,"edited_at":"2022-07-07T05:50:19.000Z","deleted_by":null,"deleted_at":null,"solvers_count":2009,"test_suite_updated_at":"2022-07-07T05:50:19.000Z","rescore_all_solutions":false,"group_id":2,"created_at":"2012-01-18T01:00:26.000Z","updated_at":"2026-02-09T17:54:34.000Z","published_at":"2012-01-18T01:00:26.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eCreate a function taking a non-negative integer as its parameter and returning a string containing the Roman Numeral representation of that 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\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eBy convention, \\\"modern\\\" Roman numerals are written by expressing each digit separately starting with the leftmost digit and skipping any digit with a value of zero.\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\u003eExamples\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eIf n is 1990 then romStr = 'MCMXC' since 1000=M, 900=CM, 90=XC.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eIf n is 2008 then romStr = 'MMVIII' since 2000=MM, 8=VIII.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eIf n is 1666 then romStr = 'MDCLXVI'.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eIf n is 0 then romStr is empty ([] and '' are both acceptable)\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\u003en will always be an integer between 0 and 3999 (inclusive).\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eThis problem is adapted from\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"\\\"\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eRosetta Code\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\",\"relationship\":null}],\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"target\":\"/matlab/document.xml\",\"relationshipId\":\"rId1\"}]}"}],"term":"tag:\"encoding\"","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:\"encoding\"","current_player":null,"sort":"map(difficulty_value,0,0,999) asc"},"parser":"MathWorks::Search::Solr::QueryParser","directives":{"term":{"directives":{"tag":[["tag:\"encoding\"","","\"","encoding","\""]]}}},"facets":{"#\u003cMathWorks::Search::Field:0x00007fa2b517a980\u003e":null,"#\u003cMathWorks::Search::Field:0x00007fa2b517a8e0\u003e":null},"filters":{"#\u003cMathWorks::Search::Field:0x00007fa2b517a020\u003e":"\"cody:problem\""},"fields":{"#\u003cMathWorks::Search::Field:0x00007fa2b517ac00\u003e":1,"#\u003cMathWorks::Search::Field:0x00007fa2b517ab60\u003e":50,"#\u003cMathWorks::Search::Field:0x00007fa2b517aac0\u003e":"map(difficulty_value,0,0,999) asc","#\u003cMathWorks::Search::Field:0x00007fa2b517aa20\u003e":"tag:\"encoding\""},"user_query":{"#\u003cMathWorks::Search::Field:0x00007fa2b517aa20\u003e":"tag:\"encoding\""},"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:\"encoding\"","current_player":null,"sort":"map(difficulty_value,0,0,999) asc"},"parser":"MathWorks::Search::Solr::QueryParser","directives":{"term":{"directives":{"tag":[["tag:\"encoding\"","","\"","encoding","\""]]}}},"facets":{"#\u003cMathWorks::Search::Field:0x00007fa2b517a980\u003e":null,"#\u003cMathWorks::Search::Field:0x00007fa2b517a8e0\u003e":null},"filters":{"#\u003cMathWorks::Search::Field:0x00007fa2b517a020\u003e":"\"cody:problem\""},"fields":{"#\u003cMathWorks::Search::Field:0x00007fa2b517ac00\u003e":1,"#\u003cMathWorks::Search::Field:0x00007fa2b517ab60\u003e":50,"#\u003cMathWorks::Search::Field:0x00007fa2b517aac0\u003e":"map(difficulty_value,0,0,999) asc","#\u003cMathWorks::Search::Field:0x00007fa2b517aa20\u003e":"tag:\"encoding\""},"user_query":{"#\u003cMathWorks::Search::Field:0x00007fa2b517aa20\u003e":"tag:\"encoding\""},"queried_facets":{}},"options":{"fields":["id","difficulty_rating"]},"join":" "},"results":[{"id":61144,"difficulty_rating":"easy-medium"},{"id":45282,"difficulty_rating":"easy-medium"},{"id":2627,"difficulty_rating":"easy-medium"},{"id":751,"difficulty_rating":"easy-medium"},{"id":43972,"difficulty_rating":"easy-medium"},{"id":45279,"difficulty_rating":"easy-medium"},{"id":40,"difficulty_rating":"medium"},{"id":42283,"difficulty_rating":"medium"},{"id":227,"difficulty_rating":"medium"},{"id":78,"difficulty_rating":"medium"},{"id":1288,"difficulty_rating":"medium-hard"},{"id":55,"difficulty_rating":"medium-hard"},{"id":63,"difficulty_rating":"medium-hard"}]}}