{"group":{"id":1,"name":"Community","lockable":false,"created_at":"2012-01-18T18:02:15.000Z","updated_at":"2026-09-03T01:10:40.000Z","description":"Problems submitted by members of the MATLAB Central community.","is_default":true,"created_by":161519,"badge_id":null,"featured":false,"trending":false,"solution_count_in_trending_period":0,"trending_last_calculated":"2026-09-03T00: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":3042,"title":"Fill-a-pix - Solution Checker","description":"\u003chttp://www.conceptispuzzles.com/index.aspx?uri=puzzle/fill-a-pix/rules Fill-a-pix\u003e is a logic puzzle game similar to Pic-a-Pix (aka Logic art) and Minesweeper. An example starting board is shown below on the left with the completed board shown to its right. Each number in the board indicates how many surrounding cells, including itself, are to be filled in. There are (up to) nine total cells associated with each number: four immediately adjacent (up, down, left, and right), four diagonally adjacent (one touching each corner), and the central cell (where the number is located).\r\n\r\nBased on this logic, all 0's and 9's are determinant, as all nine cells are either empty or filled, respectively, for these numbers. Also, all 6's on the board edges and 4's in the corners should be completely filled in, as they only involve 6 or 4 cells, respectively.\r\n\r\n\u003c\u003chttp://www.conceptispuzzles.com/picture/11/1418.gif\u003e\u003e \r\n\r\n\u003c\u003chttp://www.conceptispuzzles.com/picture/11/1420.gif\u003e\u003e\r\n\r\nFor this problem, you will be provided with various boards and solutions to each board. Write a function to determine if the solution is correct for the given board. The board will be filled with NaN's where there are no number clues; these cells should not be checked. The solution board will be filled with 1's (filled) and 0's (empty).\r\n\r\nA related problem is \u003chttps://www.mathworks.com/matlabcentral/cody/problems/3043-fill-a-pix-solver-basic Fill-a-pix - Solver (basic)\u003e.","description_html":"\u003cp\u003e\u003ca href = \"http://www.conceptispuzzles.com/index.aspx?uri=puzzle/fill-a-pix/rules\"\u003eFill-a-pix\u003c/a\u003e is a logic puzzle game similar to Pic-a-Pix (aka Logic art) and Minesweeper. An example starting board is shown below on the left with the completed board shown to its right. Each number in the board indicates how many surrounding cells, including itself, are to be filled in. There are (up to) nine total cells associated with each number: four immediately adjacent (up, down, left, and right), four diagonally adjacent (one touching each corner), and the central cell (where the number is located).\u003c/p\u003e\u003cp\u003eBased on this logic, all 0's and 9's are determinant, as all nine cells are either empty or filled, respectively, for these numbers. Also, all 6's on the board edges and 4's in the corners should be completely filled in, as they only involve 6 or 4 cells, respectively.\u003c/p\u003e\u003cimg src = \"http://www.conceptispuzzles.com/picture/11/1418.gif\"\u003e\u003cimg src = \"http://www.conceptispuzzles.com/picture/11/1420.gif\"\u003e\u003cp\u003eFor this problem, you will be provided with various boards and solutions to each board. Write a function to determine if the solution is correct for the given board. The board will be filled with NaN's where there are no number clues; these cells should not be checked. The solution board will be filled with 1's (filled) and 0's (empty).\u003c/p\u003e\u003cp\u003eA related problem is \u003ca href = \"https://www.mathworks.com/matlabcentral/cody/problems/3043-fill-a-pix-solver-basic\"\u003eFill-a-pix - Solver (basic)\u003c/a\u003e.\u003c/p\u003e","function_template":"function [tf] = fill_a_pix_solution_check(board,solution)\r\n\r\ntf = 1;\r\n\r\nend\r\n","test_suite":"%%\r\nboard = [-1,-1,-1,-1,-1,-1,-1,-1,0,-1; -1,8,8,-1,2,-1,0,-1,-1,-1; 5,-1,8,-1,-1,-1,-1,-1,-1,-1; -1,-1,-1,-1,-1,2,-1,-1,-1,2; 1,-1,-1,-1,4,5,6,-1,-1,-1; -1,0,-1,-1,-1,7,9,-1,-1,6; -1,-1,-1,6,-1,-1,9,-1,-1,6; -1,-1,6,6,8,7,8,7,-1,5; -1,4,-1,6,6,6,-1,6,-1,4; -1,-1,-1,-1,-1,-1,3,-1,-1,-1];\r\nboard(board==-1) = NaN;\r\nsolution = [0,1,1,0,0,0,0,0,0,0; 1,1,1,1,0,0,0,0,0,0; 1,1,1,1,0,0,0,0,0,0; 0,1,1,0,0,0,0,0,0,0; 0,0,0,0,0,1,1,1,1,1; 0,0,0,1,1,1,1,1,1,1; 0,0,0,1,0,1,1,1,1,1; 0,1,1,1,1,1,1,1,1,1; 0,1,0,1,1,1,0,1,0,1; 0,0,1,0,0,0,1,0,1,0];\r\ntf_corr = 1;\r\nassert(isequal(fill_a_pix_solution_check(board,solution),tf_corr))\r\n\r\n%%\r\nboard = [-1,2,3,-1,-1,0,-1,-1,-1,-1; -1,-1,-1,-1,3,-1,2,-1,-1,6; -1,-1,5,-1,5,3,-1,5,7,4; -1,4,-1,5,-1,5,-1,6,-1,3; -1,-1,4,-1,5,-1,6,-1,-1,3; -1,-1,-1,2,-1,5,-1,-1,-1,-1; 4,-1,1,-1,-1,-1,1,1,-1,-1; 4,-1,1,-1,-1,-1,1,-1,4,-1; -1,-1,-1,-1,6,-1,-1,-1,-1,4; -1,4,4,-1,-1,-1,-1,4,-1,-1];\r\nboard(board==-1) = NaN;\r\nsolution = [0,1,1,0,0,0,0,0,1,1; 0,0,0,1,0,0,0,1,1,1; 0,0,1,1,1,0,0,1,1,1; 0,1,1,0,1,1,0,1,0,0; 0,1,0,0,0,1,1,1,1,0; 1,1,0,0,1,1,0,0,1,1; 1,0,0,0,1,0,0,0,0,1;  1,0,0,0,1,0,0,0,0,1; 1,1,0,0,1,1,0,0,1,1; 0,1,1,1,1,1,1,1,1,0];\r\ntf_corr = 1;\r\nassert(isequal(fill_a_pix_solution_check(board,solution),tf_corr))\r\n\r\n%%\r\nboard = [0,-1,-1,4,3,2,1,-1,-1,-1,-1,-1,3,-1,-1; -1,-1,5,-1,-1,4,-1,-1,4,4,-1,-1,-1,-1,3; -1,5,4,5,4,5,5,-1,5,3,-1,1,2,-1,3; 4,-1,-1,-1,4,-1,-1,4,2,-1,1,-1,-1,-1,-1; -1,-1,5,4,-1,2,2,-1,1,0,-1,-1,7,5,-1; -1,-1,-1,5,-1,-1,0,-1,-1,-1,-1,4,5,-1,2; 4,-1,-1,5,4,2,0,0,-1,-1,-1,5,6,-1,-1; 5,-1,-1,6,5,-1,-1,-1,-1,-1,3,3,3,-1,3; -1,-1,5,-1,5,3,-1,-1,-1,-1,-1,-1,3,-1,-1; 5,-1,-1,6,5,-1,3,5,-1,6,-1,-1,0,-1,0; -1,-1,5,-1,4,3,2,4,5,-1,4,-1,-1,1,-1; -1,7,-1,-1,5,-1,-1,1,-1,5,5,5,-1,-1,-1; -1,-1,6,4,4,4,3,1,2,4,-1,-1,6,4,-1; -1,5,-1,6,-1,-1,-1,-1,-1,4,6,-1,-1,-1,-1; -1,-1,-1,-1,-1,-1,3,2,0,-1,4,4,3,-1,2];\r\nboard(board==-1) = NaN;\r\nsolution = [0,0,0,1,1,0,0,0,0,0,1,1,1,1,0; 0,0,1,0,1,0,0,1,1,1,0,0,0,0,1; 1,1,1,1,0,1,1,0,1,0,0,0,0,0,1; 1,0,0,0,1,0,1,1,0,0,0,0,1,1,0; 0,1,1,1,0,0,0,0,0,0,0,1,1,0,0; 0,1,0,1,0,0,0,0,0,0,0,1,1,1,0; 1,1,1,0,1,0,0,0,0,0,0,0,0,0,1; 1,0,0,1,1,0,0,0,0,0,1,1,1,1,1; 1,1,1,1,0,1,0,0,1,1,0,0,0,0,0; 1,0,0,1,0,0,1,1,1,1,0,0,0,0,0; 1,1,1,1,1,0,0,0,1,0,1,0,0,0,0; 1,1,0,0,1,0,0,0,0,1,0,1,1,0,0; 0,1,1,1,0,1,0,0,0,1,1,0,1,1,0; 0,1,1,0,0,1,1,0,0,0,1,1,0,1,0; 0,0,1,1,1,0,1,0,0,0,1,1,0,0,1];\r\ntf_corr = 1;\r\nassert(isequal(fill_a_pix_solution_check(board,solution),tf_corr))\r\n\r\n%%\r\nboard = [-1,-1,3,3,-1,-1,-1,-1,-1,-1; 3,-1,-1,-1,-1,-1,0,-1,0,-1; -1,-1,3,4,-1,3,-1,-1,-1,-1; 3,-1,4,-1,-1,-1,-1,3,-1,-1; 2,3,-1,5,-1,4,4,-1,-1,4; -1,-1,5,4,6,6,-1,4,-1,4; -1,-1,-1,-1,-1,3,3,-1,-1,4; -1,3,-1,-1,5,6,5,-1,-1,4; -1,-1,-1,7,-1,-1,-1,7,-1,5; -1,4,-1,-1,6,-1,6,-1,5,-1];\r\nboard(board==-1) = NaN;\r\nsolution = [0,0,1,1,0,0,0,0,0,0; 0,1,0,0,1,0,0,0,0,0; 1,1,0,0,1,0,0,0,0,0; 0,0,1,0,1,0,0,1,0,1; 0,1,0,1,1,1,1,0,1,1; 0,1,0,1,0,1,0,1,0,1; 0,1,0,0,1,1,1,0,0,1; 0,0,1,0,0,0,0,0,1,1; 0,0,1,1,1,1,1,1,1,0; 1,1,1,1,1,1,1,1,1,1];\r\ntf_corr = 0;\r\nassert(isequal(fill_a_pix_solution_check(board,solution),tf_corr))\r\n\r\n%%\r\nboard = [-1,-1,-1,4,-1,-1,4,-1,6,-1,5,4,-1,-1,1; -1,4,-1,-1,-1,-1,-1,-1,-1,7,-1,-1,-1,-1,-1; -1,-1,4,-1,-1,0,1,-1,4,-1,5,-1,6,-1,-1; 4,-1,-1,0,-1,0,-1,3,-1,-1,4,-1,5,-1,4; -1,-1,1,-1,-1,2,-1,3,5,4,-1,4,5,-1,-1; -1,2,-1,-1,3,-1,5,-1,-1,5,5,5,-1,-1,-1; -1,-1,1,2,-1,5,-1,3,4,-1,-1,-1,-1,-1,5; -1,0,0,1,-1,-1,5,-1,6,-1,7,-1,6,-1,4; -1,-1,-1,-1,-1,-1,-1,-1,5,5,-1,-1,6,-1,-1; -1,0,-1,-1,4,-1,6,-1,-1,-1,6,-1,7,-1,-1; -1,-1,-1,-1,-1,8,-1,8,7,-1,-1,-1,7,-1,3; -1,-1,5,-1,7,-1,8,-1,7,7,-1,-1,5,-1,-1; -1,2,-1,8,-1,8,-1,-1,-1,6,5,-1,-1,-1,5; -1,1,-1,5,-1,5,-1,3,-1,-1,5,-1,3,-1,4; -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2,3,-1,-1];\r\nboard(board==-1) = NaN;\r\nsolution = [0,0,0,1,1,1,1,1,1,1,1,1,0,0,0; 0,1,1,1,0,0,0,1,1,1,1,0,1,1,0; 1,1,0,0,0,0,0,0,0,0,1,1,0,1,1; 1,0,0,0,0,0,0,0,1,0,0,1,1,0,1; 1,0,0,0,0,0,0,1,1,1,0,0,1,0,1; 0,1,0,1,1,1,0,0,0,1,0,0,1,1,1; 0,0,0,0,0,1,1,1,0,1,1,1,1,0,1; 0,0,0,0,1,0,0,1,0,0,1,1,0,1,1; 0,0,0,0,0,0,0,1,1,1,1,0,1,1,0; 0,0,0,0,1,1,1,0,1,0,0,1,1,0,0; 0,0,0,1,0,1,1,1,1,1,1,1,1,1,0; 0,0,1,1,1,1,1,1,1,1,1,0,1,1,1; 0,0,1,1,1,0,1,1,0,0,1,0,0,0,1; 0,0,0,1,1,1,1,0,0,1,1,0,0,1,1; 0,0,0,0,0,0,0,0,0,1,0,1,0,1,0];\r\ntf_corr = 0;\r\nassert(isequal(fill_a_pix_solution_check(board,solution),tf_corr))\r\n\r\n%%\r\nboard = [0,-1,-1,4,3,2,1,-1,-1,-1,-1,-1,3,-1,-1; -1,-1,5,-1,-1,4,-1,-1,4,4,-1,-1,-1,-1,3; -1,5,4,5,4,5,5,-1,5,3,-1,1,2,-1,3; 4,-1,-1,-1,4,-1,-1,4,2,-1,1,-1,-1,-1,-1; -1,-1,5,4,-1,2,2,-1,1,0,-1,-1,7,5,-1; -1,-1,-1,5,-1,-1,0,-1,-1,-1,-1,4,5,-1,2; 4,-1,-1,5,4,2,0,0,-1,-1,-1,5,6,-1,-1; 5,-1,-1,6,5,-1,-1,-1,-1,-1,3,3,3,-1,3; -1,-1,5,-1,5,3,-1,-1,-1,-1,-1,-1,3,-1,-1; 5,-1,-1,6,5,-1,3,5,-1,6,-1,-1,0,-1,0; -1,-1,5,-1,4,3,2,4,5,-1,4,-1,-1,1,-1; -1,7,-1,-1,5,-1,-1,1,-1,5,5,5,-1,-1,-1; -1,-1,6,4,4,4,3,1,2,4,-1,-1,6,4,-1; -1,5,-1,6,-1,-1,-1,-1,-1,4,6,-1,-1,-1,-1; -1,-1,-1,-1,-1,-1,3,2,0,-1,4,4,3,-1,2];\r\nboard(board==-1) = NaN;\r\nsolution = [0,0,0,1,1,0,0,0,0,0,1,1,1,1,0; 0,0,1,0,1,0,0,1,1,1,0,0,0,0,1; 1,1,1,1,0,1,1,0,1,0,0,0,0,0,1; 1,0,0,0,1,0,1,1,0,0,0,0,1,1,0; 0,1,1,1,0,0,0,0,0,0,0,1,1,0,0; 0,1,0,1,0,0,0,0,0,0,0,1,1,1,0; 1,1,1,0,1,0,0,0,0,0,0,0,0,0,1; 1,0,0,1,1,0,0,0,0,0,1,1,1,1,1; 1,1,1,0,0,1,0,0,1,1,0,0,0,0,0; 1,0,0,1,0,0,1,1,1,1,0,0,0,0,0; 1,1,1,1,1,0,0,0,1,0,1,0,0,0,0; 1,1,0,0,1,0,0,0,0,1,0,1,1,0,0; 0,1,1,1,0,1,0,0,0,1,1,0,1,1,0; 0,1,1,0,0,1,1,0,0,0,1,1,0,1,0; 0,0,1,1,1,0,1,0,0,0,1,1,0,0,1];\r\ntf_corr = 0;\r\nassert(isequal(fill_a_pix_solution_check(board,solution),tf_corr))\r\n\r\n%%\r\nboard = [-1,-1,-1,-1,-1,-1,-1,-1,0,-1; -1,8,8,-1,2,-1,0,-1,-1,-1; 5,-1,8,-1,-1,-1,-1,-1,-1,-1; -1,-1,-1,-1,-1,2,-1,-1,-1,2; 1,-1,-1,-1,4,5,6,-1,-1,-1; -1,0,-1,-1,-1,7,9,-1,-1,6; -1,-1,-1,6,-1,-1,9,-1,-1,6; -1,-1,6,6,8,7,8,7,-1,5; -1,4,-1,6,6,6,-1,6,-1,4; -1,-1,-1,-1,-1,-1,3,-1,-1,-1];\r\nboard(board==-1) = NaN;\r\nsolution = [0,1,1,0,0,0,0,0,0,0; 1,1,1,1,0,0,0,0,0,0; 1,1,1,1,0,0,0,0,0,0; 0,1,1,0,0,0,0,0,0,0; 0,0,0,0,0,1,1,1,1,1; 0,0,0,1,1,1,1,1,1,1; 0,0,0,1,0,1,1,1,1,1; 0,1,1,1,1,1,1,1,1,1; 0,1,0,0,1,1,0,1,0,1; 0,0,1,0,0,0,1,0,1,0];\r\ntf_corr = 0;\r\nassert(isequal(fill_a_pix_solution_check(board,solution),tf_corr))\r\n\r\n%%\r\nboard = [-1,2,3,-1,-1,0,-1,-1,-1,-1; -1,-1,-1,-1,3,-1,2,-1,-1,6; -1,-1,5,-1,5,3,-1,5,7,4; -1,4,-1,5,-1,5,-1,6,-1,3; -1,-1,4,-1,5,-1,6,-1,-1,3; -1,-1,-1,2,-1,5,-1,-1,-1,-1; 4,-1,1,-1,-1,-1,1,1,-1,-1; 4,-1,1,-1,-1,-1,1,-1,4,-1; -1,-1,-1,-1,6,-1,-1,-1,-1,4; -1,4,4,-1,-1,-1,-1,4,-1,-1];\r\nboard(board==-1) = NaN;\r\nsolution = [0,1,1,0,0,0,0,0,1,1; 0,0,0,1,0,0,0,1,1,1; 0,0,1,1,1,0,0,1,1,1; 0,1,1,0,1,1,0,1,0,0; 0,1,0,1,0,1,1,1,1,0; 1,1,0,0,1,1,0,0,1,1; 1,0,0,0,1,0,0,0,0,1;  1,0,0,0,1,0,0,0,0,1; 1,1,0,0,1,1,0,0,1,1; 0,1,1,1,1,1,1,1,1,0];\r\ntf_corr = 0;\r\nassert(isequal(fill_a_pix_solution_check(board,solution),tf_corr))\r\n\r\n%%\r\nboard = [-1,-1,3,3,-1,-1,-1,-1,-1,-1; 3,-1,-1,-1,-1,-1,0,-1,0,-1; -1,-1,3,4,-1,3,-1,-1,-1,-1; 3,-1,4,-1,-1,-1,-1,3,-1,-1; 2,3,-1,5,-1,4,4,-1,-1,4; -1,-1,5,4,6,6,-1,4,-1,4; -1,-1,-1,-1,-1,3,3,-1,-1,4; -1,3,-1,-1,5,6,5,-1,-1,4; -1,-1,-1,7,-1,-1,-1,7,-1,5; -1,4,-1,-1,6,-1,6,-1,5,-1];\r\nboard(board==-1) = NaN;\r\nsolution = [0,0,1,1,0,0,0,0,0,0; 0,1,0,0,1,0,0,0,0,0; 1,1,0,0,1,0,0,0,0,0; 0,0,1,0,1,0,0,1,0,1; 0,1,0,1,1,1,1,0,1,1; 0,1,0,1,0,0,0,1,0,1; 0,1,0,0,1,1,1,0,0,1; 0,0,1,0,0,0,0,0,1,1; 0,0,1,1,1,1,1,1,1,0; 1,1,1,1,1,1,1,1,1,1];\r\ntf_corr = 1;\r\nassert(isequal(fill_a_pix_solution_check(board,solution),tf_corr))\r\n\r\n%%\r\nboard = [-1,-1,-1,4,-1,-1,4,-1,6,-1,5,4,-1,-1,1; -1,4,-1,-1,-1,-1,-1,-1,-1,7,-1,-1,-1,-1,-1; -1,-1,4,-1,-1,0,1,-1,4,-1,5,-1,6,-1,-1; 4,-1,-1,0,-1,0,-1,3,-1,-1,4,-1,5,-1,4; -1,-1,1,-1,-1,2,-1,3,5,4,-1,4,5,-1,-1; -1,2,-1,-1,3,-1,5,-1,-1,5,5,5,-1,-1,-1; -1,-1,1,2,-1,5,-1,3,4,-1,-1,-1,-1,-1,5; -1,0,0,1,-1,-1,5,-1,6,-1,7,-1,6,-1,4; -1,-1,-1,-1,-1,-1,-1,-1,5,5,-1,-1,6,-1,-1; -1,0,-1,-1,4,-1,6,-1,-1,-1,6,-1,7,-1,-1; -1,-1,-1,-1,-1,8,-1,8,7,-1,-1,-1,7,-1,3; -1,-1,5,-1,7,-1,8,-1,7,7,-1,-1,5,-1,-1; -1,2,-1,8,-1,8,-1,-1,-1,6,5,-1,-1,-1,5; -1,1,-1,5,-1,5,-1,3,-1,-1,5,-1,3,-1,4; -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2,3,-1,-1];\r\nboard(board==-1) = NaN;\r\nsolution = [0,0,0,1,1,1,1,1,1,1,1,1,0,0,0; 0,1,1,1,0,0,0,1,1,1,1,0,1,1,0; 1,1,0,0,0,0,0,0,0,0,1,1,0,1,1; 1,0,0,0,0,0,0,0,1,0,0,1,1,0,1; 1,0,0,0,0,0,0,1,1,1,0,0,1,0,1; 0,1,0,0,1,1,0,0,0,1,0,0,1,1,1; 0,0,0,0,0,1,1,1,0,1,1,1,1,0,1; 0,0,0,0,1,0,0,1,0,0,1,1,0,1,1; 0,0,0,0,0,0,0,1,1,1,1,0,1,1,0; 0,0,0,0,1,1,1,0,1,0,0,1,1,0,0; 0,0,0,1,0,1,1,1,1,1,1,1,1,1,0; 0,0,1,1,1,1,1,1,1,1,1,0,1,1,1; 0,0,1,1,1,0,1,1,0,0,1,0,0,0,1; 0,0,0,1,1,1,1,0,0,1,1,0,0,1,1; 0,0,0,0,0,0,0,0,0,1,0,1,0,1,0];\r\ntf_corr = 1;\r\nassert(isequal(fill_a_pix_solution_check(board,solution),tf_corr))\r\n","published":true,"deleted":false,"likes_count":2,"comments_count":0,"created_by":26769,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":23,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2015-02-25T02:55:09.000Z","updated_at":"2026-05-24T16:30:22.000Z","published_at":"2015-02-25T02:55:09.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/image\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/media/image1.gif\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/image\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/media/image2.gif\"}],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:hyperlink w:docLocation=\\\"http://www.conceptispuzzles.com/index.aspx?uri=puzzle/fill-a-pix/rules\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eFill-a-pix\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e is a logic puzzle game similar to Pic-a-Pix (aka Logic art) and Minesweeper. An example starting board is shown below on the left with the completed board shown to its right. Each number in the board indicates how many surrounding cells, including itself, are to be filled in. There are (up to) nine total cells associated with each number: four immediately adjacent (up, down, left, and right), four diagonally adjacent (one touching each corner), and the central cell (where the number is located).\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\u003eBased on this logic, all 0's and 9's are determinant, as all nine cells are either empty or filled, respectively, for these numbers. Also, all 6's on the board edges and 4's in the corners should be completely filled in, as they only involve 6 or 4 cells, respectively.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:customXml w:element=\\\"image\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"height\\\" w:val=\\\"-1\\\"/\u003e\u003cw:attr w:name=\\\"width\\\" w:val=\\\"-1\\\"/\u003e\u003cw:attr w:name=\\\"relationshipId\\\" w:val=\\\"rId1\\\"/\u003e\u003c/w:customXmlPr\u003e\u003c/w:customXml\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:customXml w:element=\\\"image\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"height\\\" w:val=\\\"-1\\\"/\u003e\u003cw:attr w:name=\\\"width\\\" w:val=\\\"-1\\\"/\u003e\u003cw:attr w:name=\\\"relationshipId\\\" w:val=\\\"rId2\\\"/\u003e\u003c/w:customXmlPr\u003e\u003c/w:customXml\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eFor this problem, you will be provided with various boards and solutions to each board. Write a function to determine if the solution is correct for the given board. The board will be filled with NaN's where there are no number clues; these cells should not be checked. The solution board will be filled with 1's (filled) and 0's (empty).\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 related problem is\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/3043-fill-a-pix-solver-basic\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eFill-a-pix - Solver (basic)\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\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"},{\"partUri\":\"/media/image1.gif\",\"contentType\":\"image/gif\",\"content\":\"data:image/gif;base64,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\"},{\"partUri\":\"/media/image2.gif\",\"contentType\":\"image/gif\",\"content\":\"data:image/gif;base64,R0lGODlhlACUAPcAAAAAAP///xISEvz8/P7+/u3t7ZKSkt3d3UJCQvv7+4SEhL6+voCAgLS0tKWlpfr6+pSUlPHx8b+/v66urvDw8KmpqaysrCoqKr29vfb29uXl5cLCwsrKyurq6vLy8pycnKqqqu/v74ODg5eXl5aWlszMzGVlZaSkpKurq5iYmKKiohMTE+Hh4QUFBfj4+BAQEOfn5xEREeLi4kNDQ7KysouLiw0NDQEBAQICAt7e3sXFxZ6enn5+fgoKCujo6IeHh9DQ0M3NzePj45WVlQwMDNXV1e7u7pCQkD09PV5eXvX19Q4ODi8vL6Ojo8bGxuzs7EREREFBQSsrKwgICPPz81NTU9jY2Ovr69vb23d3dxUVFQsLC11dXaenp7CwsHJycuTk5AkJCYiIiCMjI6ioqAQEBPT09HNzc8TExIKCgtra2re3ty0tLWdnZ1xcXPf390tLS2BgYFRUVP39/by8vBYWFtzc3F9fX8fHx5ubmzk5OdnZ2ScnJ7a2toaGht/f329vb1JSUpmZmWpqaiIiIjo6OjQ0NAMDAygoKPn5+T4+PsPDw+Dg4GZmZtTU1I+Pj4WFha+vr9fX101NTUVFRcDAwFhYWDc3N3p6eiYmJiEhIUpKSlBQUCUlJQYGBiwsLK2trTExMdPT04GBgYqKitbW1qampsvLy4yMjHR0dFZWVkZGRhsbGzIyMnt7e9LS0ltbW7W1tcnJyTg4OB0dHbGxsXh4eOnp6c7OzldXV7q6uri4uHV1dSQkJBgYGBcXFxkZGUdHR3BwcA8PD2RkZMHBwQcHB42NjbOzs2JiYnFxcXZ2dkBAQB4eHnl5eU9PT5+fn5GRkU5OTs/Pz6GhodHR0bm5uTAwMEhISMjIyJOTk25ubjY2NmlpaSkpKY6Ojjs7O2tra2FhYUlJSbu7uzMzMzU1NR8fH21tbRQUFCAgIH19fRwcHC4uLn9/f3x8fGhoaFVVVZ2dnVlZWZqamj8/Pzw8PBoaGlFRUUxMTGxsbGNjYwAAAAAAAAAAAAAAACwAAAAAlACUAAAI/wADCBxIsKDBgwgTKlzIsKHDhxAjSpxIsaLFixgzatzIsSPDMQJCihxJsqTJkyhTqlzJsqXLlyPHGLRxI8bKMABy6typcxXPnzlbrHzRY2hRlTZsrFyyZGWPFyuJ2FTZwoZBATHsFNjKtevWLEB/+gy7E4nXswWCiEHrVS3brl26vOXaYMHcrWKC3C2wY89eJAKuCvDAMA3ZnWMPA5jBkMWQxo8XrlnD0AkQhkNYBCAwkDNBAqCMMJwRuGDIAgwZKM6Z+DAChgcMwJa9sEEDhhtKMDRwgCGIDgwRlCZ4WqAGCwMGhlAhUPXq1mRfBzieXOBygbGNI1fOPED26dutd/+3rb16gOsBcpfnLpB3gAwZAnBoxQbNlYG/wZtHH0C4YNTvOVDBAAREQMICza0GAHRhSZeBgAQaiKB3tD04YIEHYlchhBhOSF6AF0ookHogRphhAO6xgEoGhcCCiSF54AechSZO2N9wAxW32QMnWODBCDY6pxiDQElHAI8+AjnQd0f2+KONTCL55EAfNpmkjSRaOWV7B3DGAiR1MNLADHbIuKOTSg7kn2kCADjQByZIQJCQhxH5k3RvxknQd3nKuSRtfRL0YaADkUgol55t8EwkEBCBi5mHCrQmcW0KxFkEKYgwQQID0UmWnTwZGQCmmnKqoaWjZrrpn6iSuqpAVab/Wmqhum0m66sodsmZFVIII8MSlxFAQH6XqmqqpDgKpGMAFEAgp4CmehoWqDvh2eyzFZjK57UBQHuqQNx6G8Cg4WY7Yq3MOtutubla6ggnTUAwhQye5ZcutsdOmmOl6SJIQAIOoJDgcwpK16y/AAtMIbgQIBzwtwdvljCst/Ur8cPp1Rrxvxi7N4cQNbjBhDS5PGDmxhMj+59AHPgr0AMTDDxkwSy7HADM37Zs680xLyyfzTiPW7HOngVNItEv9+yeDDVkAIMry/Sxg5lI86xmsgEsm5C0QFGrE54J8Rk2oAkNmpChCbkHH6oBPAGpQvoqu4J5CYmhoNesMXSFIAzB/8D3QnTQwdApRTAkCAybebazpTQowRAlWAsQRhYMVG755ZWvovnmnHfu+eerYC46A4AEYsDpqKd+Og9VqO66AW208brqgKQye+pV8HA76uL4sfvpmUSu4IJ3F7/aNgckr/zyyUvAA/PQH/DBB9EzT4YX1S/PgwTZK68NB90nr4fwxs9M8GppJN4Z244xNNniiltqGWaaLRTaaOSfr9MLMwDDE3S0QMAU/qcgBhTECTUAguLEhhCzIQRtCHHPQuwFt/yZLyesEAUBwGAOxOxEET4gABrS4cHVGDAA08jAAoggBQFw4DI+ow57hPae+MynPvc513rEw6Udnqc79pIhD/9vdJXhteYMBQAGLuRRwpyQYResGIA4mniYE4LsDG4IwCYaUb/v0KhDFAuAiljkIhjRSiBfFFG7SgTGANgrjSeKW9aMiBgYtMEKxKBiFoAADzCUg4pkOSEBWOAHGERADiJg1ZmuRKUGeAlMYiLTGRe5pTVqKU1uBA4lMSlHAdBRJ7QQggveAA4qRuEBLpAEOwAZFgN6RgY/SIIhqKDISNkmUYtq1KN0SBA4+amHvdTT2wTiS4J08pM5IYEktACKNVCRHE2oAxgewUqgnPBlSbCEERZIm2LNimLCCgCvfAWsxGXpVseSoDdxZa915suCddpJE04BgB3QgYpOOAIADjD/hGr+xJWbyUInkjCIWnhmW+oSV5XeFa95JQpd5TKVBO+1LlNRMKIqMw0yAUAJF+QgEZag4jYG8IdbMMGfPAHoDkYRhUsgIBWKRBnGyPOxkI2sZJOUqcIkqFOB2KunRNRo+XKChB8Eg4A7kQMkEIFUxZzQCzogiA5okDOg9Yw8THMa1KQ2yaoFTYJe7Zm9wppR4mz0U0MNJKriN5AckK2Bt1nbztw2oiDsJge+yWEFi5jWafUVKO4YgGAHS1jBYuEIhU3sAGhA1XCyzVKV4IBiC3sELEyWsGSAwWUHG4XIge6zoA2taD+ngNKa9rSl/QIcUMtaBXCBC61FLTG6EdvT/8LhC7U1rSWckdvSEgKeaNVfPFcT2M0O4LDGXSwNkhvZ5FY2uZlNbmf5KtzgXrCKDHErQxx4kA3YdSEGwOsE9ZqQY+6kDMIQgxiggFJATkIBTG2vTq45tu1WTCEQPMhEE0LB8sLzFy6AgQbOIF/W7CQOiWDBFTpRYACcUIg//BaE0fOhCXeHRBYGZoYzqZ8ZBtWsO5mFI3AglqFOoAIAcEEjGnxCOE7IixxS44dczEsar9HG+bHxh3PEk01EoBJkWEGDW+OGHEDDCs1gsaWkhMkooclGVWIylmp1SRupU8pmqrIx4UkJJ2QhAnkY8k6SEIIgCGEWSg7mL31my/sSU/+YvIzUfgNQzGHW+WrUzckWjAEAVJRCzDrBAykAIIkPpNmdikR0GG3lqmOds9EDUSc6szxpPAtVJ4M4RS+ygQxA50QCFeiED36QZoqKC6H4WrSp2WUojK5x1RbVpKt3rCyeeMMOA/ABGzwNgEBEYA6nYEWagfodoH4IqCQCKk8bdjGF5QeotJ4jT/jni6YOVyeEQABO0kxWn3X7Q90+mlWB2e38dDvanvxriavbyuy+9SDcNYh375rX4ADXr+zumoJ4kFzkGpexzJWscZ9r3Ogad7qmaQESEMDwhjuc4aONuOYeTnEE6CEYvVWAajP+2ozPNuO3zfhuM/7bq6zAcQv/gYS6eQIFhmggGv1GrGN3Fk6AG7e5A7dswTV78MgJQDQL4dq6FQM2hGh3IUcfCAIV2EjcfFch4a33zD3jmU7ySyFCt3Z0ZuND9HwnhSts4QtVfTZ0pa03E9Sk0hOoOKsDaMNZb7B0NgzjEJ3oO1fM4hY1Q4AKhyfCGet6dyS4YXuBnYUuhKHb0RjjE8W9JzRjoxqdzMhvDbKQh0zkom1MIhtLEMeazLsWuVjWfQFIyzK7tmuW/ORavnnN2XllLGfZ9E1OmfWVtySWfarJyxsSkZamlJteP6eVV6sgd/aZotl8s2xus/aRgmDy55x8YgkElrKkZemVxa/lP97AqxEV/6S/BetTcYYAAiWoQTcTq/EHntHGijTal9/fBzi/7T53k6u/T7zwD8TVxcZsHKMwsRcAK9VSLwV9rtZqCcUuE+Vq1od+A1VQVZd/DOMwCsN/eAMABiOAKfMd3fYdUCVVjXVsHogxyXaCO4V2QGV9B+hSMLV9WcMv3aaBkReC72YQTLI4gjI04/Z+3QZWP2gvIzgQUyWDIUEYC2EY+fYTjLEQ7QOFkaEQ77MQ87MQmcEQ92MrbCUQpHEVLxAE4XMA22B8OmEOY+g8Y7gAP7AXcbEXdbEXebEXffEXkdMDP/A7BhAIgDA6l8MDCMADfmg5PBAMR/A7rKOHEreIjNiInP8jFCbnAoZDXghxDA1RA33zNwghLC7wAmbYf9dlXYphgQehOHNmEAOgAHRzEKm4ijooG1THgwFQAOkWivrWhFpHFqRoK0KwC7F4igXRigshjAoRG/FDAGnwSwRAizsRCGhQAhiwBFTUCroQCWPAa6J4GLuYAK8wDpewOIT3d9chjBtGjuLYHcYYAFEVALGAA6MgBPXDjDohCHvQBB9ABE30AmCwBkFQDNiIb6thgZnxBIYwBasADXsgf4xndwgijDbmkI33YrCoAztAAJPABwxQA28gEPKYE7sAD2UwdJNgBjHgC3zwj7cYkCuTATUgAxnQBnIQVed3Za0XAMKIejb/qYq2V0s6wACYEAfhgHKzWIs4IApP0AGoQGKQlxNckAEHIARygJJDN4or8x4t2QbBsD7UB2fESHwD0ZV0BmcU4hlUgA1iEAc8QBAdiQM8oAr6EADXuJQAcAcJMAkkIAMhCX62mJJUySZukgFf0Ah6UBCSNn43WWk5mRzLxyeMEAZcwAZ14ASe0ZFhcA0AwAoJcFJyCQsaAADc8ARbIJeql426WJVzAA0LYAJI0BkE8IANyCnE6Gqx+ZrkZwSucAKrAAs+MBAduQIPAAHf8AC/0ESa4AK24AWicAOiSZp8qY0rQwA7EFXK4AYyQBDLhoGJaTEDKBDCSGwV0pIEEA7v/7COQ7kTqtABGhCVVNQNIaAGhSCVuRgW+QedOsAZVAAGLamQP7MzOCOM3eafPxh7Q1CdttIXHFmLetYDUwkANuAJ8bmgANmXlEIYTxA/ShAfm5GFC/EDDcGhUsgQHoCgzPmgJNpgABA5YTiG2xM+avAFasCiq9ABd+EWd2EHMfCJG5ijw3OHefg7ufM7RwAHh7g70eCIRnqkSLqIkbMCkrgQhwM/BUEApNAQ7IWL8LmcETqiP7GLZ8cQOrkQCPCJoDiazZmlZiqfVQl1vbE2N2QfA/GlcCOmiaEJeHAKOiAB7UBFuYAGTaAFV7qcg4AHRyBkO2GBG9YuY9QiLxIjAv+hk4caplYql+xgCl2ABwHwCU3EBgMQCyzARFhapnw5CwGQAhQwCDxhgTrGG48UJmNSJo2aHDoGqXsJoXRQA01FDD7AgTlwCJ8KoXxJD7JQB60wnIX6nLuHKCOSS47ypop5rP0hpzwxA0YQmk0ECy5wDsLQAdQ6plpKRQ0QAkagBidZrH6pZoSpK+LUK78SLAQAp2G5Zs8aqXqZE30wAUOXDkGQCBHwB9uqo8JFB3/ABFZATeQqfPD3TcBEAAwlL/TyqgeLK/E6q9amBS7ACUN3CLTADcmABbw6r90qmpGAAgDQBCJbsKbHMKnWQzUlMiRjMg5bfpICrTrBDQNAC0P/xwQakASLQAZ/Oq+q8AZx4AO8cKorA21L0zRPEzVT47DQJqtkypehMAEK2lRlkAZUgAd+2qslKpo4AA1mMAE3arLchxrnpjYY6hl0FQA6eW5O+7Eem6UvoJRa+49hS7SmsQIbuRApgDhT9xlT+jgyK7FzO7hvi6amYQNdYBuKu7iK2wYfwLiQSwNcQAOQC7maKbiEy62g6qucu6VXgbiVy7iOG7qKK7mUS7q2wQRJurqs27oml7cKsbcM8bcLQQkK4gcM4QL++rSda6JcGkFolxBgiRBte6L/xBAFsLs58QItsLWFC6F1K7YzOHzAO4zuSryFSgdKQAaeOF/Iu7s4/5AGSlAK8fW8zjumhyAIVIAGcakThnqO+plh5rgf3RGxAAABagAHVtAaDwa/s7i7zBAAXxAL1tCzYxoICfAMC9AGdmuwqYp2NAaRDKkmO1EK2oAPbKCc3it5J5K85dMGnXkJMtC85strXeAEk6AIeem+xlqTCbt7N+mssooDr6AEIeADhLATgnSsHqw/nBAAUfAIT4CPJZy5rRELCfAED9C2XJp8r+aV2RkpEYsDf3AML6ABX6DDyCeWPXxBnqACTyAEBzC1mru51rYAp7AEG2Bo0lscy2dJlXaY7me/RZDF04AJWvywx9LF1/YC4LAFcaAGGlzGvSua1OBMKOAADf98sjD7ahg1mylrv2fgAQ7wAKW0wTDLx9blDS5gCj6gAAbcGoVAAE3wBlywyGOrnSmzRj3VnSpIwTpxAz+AB1WQUhfYbBypvHCABo8gt4R8vtDRCHjAC758oitTtmhHVgDKnz1jv2q1n0XTM5p8psAspsZ8t0KZECOAOAtBuwphu6uBuwuhuzgauBKaI0vQABuwzuzczusMCCeAAfI8z/SMAeSQDORQz/qMAa3bz/7MiJGzBAtQAgRd0AZN0Csmr78cygqtvM55t2bgpebstgtNuA5NzZ5brkHXV9H7tiLKrVNgAxcrACsQEivMrUvgoFQ0BStQ0i8wyMp7Ay/Q0nz/1sZXtzVD9QsLYAbIEL2t8QuLwNMI2hpwwAIFAAhNhQhU4AIhEAF6QEXrQAFYMANU5AqjVADVMEBFPK82oAYu4AJJgMrT22FDFAA2qBPfIApQUAq1LJp58AoIUATY0ESeIATRAAgPUG1yuQRyUAVNQAX30EQXEAB34ACvQEVSoAqc4AjtaMQ7IQVgwAlwoA5iXRw6dtY5oQs7EAhs4MutUQTaUAUZTNeSkAWTAANZ+7ZWMEVNhAgRoAioUAmshAi3cAG8xgxWMA9/VNmVgpNmPVTW4AIa4ANS0EQ0TAVC4AOZQEWYIBBdMMjcygVgAN2geAO7IBDhwEpNAArVrBN3/xAAkkAA0NHEYvnbwuUEQ9ADYBANTXQDf0AKYSAEqdBEWvAECnAHGVDconkIQEACQwcFZhAPR3AAKs2twPAGgdDdOUELtqsD38DbqPHGmA0A1iACAOAI/i2aojC0r2ALTdQJAXBSZvCeotkMD6AIQ5cMHgAAimAEZAwdquABIs1rgVDLfUCwLKzRszbh6OABZDAATntEVOAACUDiekkEWAAEdHALqT2mSDAHdTB015AItWAHuwBIaWAFhTyvgBAA1JAA8QDhqowx5n1dN8ADTtDWoinLtGxt6uAFdJCnVEQIvFDgorkJi3ACQx2tcbDl3OoM2WCqYn5uE07RF23Gjv+t0NdMHEzKEH4w0Rjds4fu54ueI3ioh+MQcSzxz5ze6Z8FhmIYPki9GmbxF5AOFF6wF16gIFmxF2ChID6nhArBhIrxhAtB1Q2tIMXAEP4YkLKeELR+zqm80TwxDKFw0kWHvTsBDFAwDFqHCCiudZ+ABD+BAQyBAT9RCJebEzeNENJSB8cu5ocqLdTwAAg6d/5rv5/gAw+QAzksmrmgBATQB1o9r26QCHOADPUOANZO1oCH7TthAHOQAATmvm/nv9JCA+Yu5pfNE/WQAAVAqDnhIBEJyzlBA32wAnlgD03UA7eQCohwAk2eGD3gA8ogBabQ5P1uYwCfE9dAAOagCjz/UKgAYmOeEgUF8AQSz+0tnHtlfvGRAAY7byQyvBNFYAEfsAlNRQhKkAcjMK5ySQgRMAQk0L450e842fIAgA5GcAyQMOPcfnrH6imL8AFCL+ZSTCfYAArlEALbNvFbDK8zXAodUAsBQO1yyQcJUA2y4AMjrxN88AC4kA1+vxP9HilabwsB0Ac+0AQ0H/fFpxPjEAmGEAJkzPPlKuE70QWLQAIPYALHp8fGFMuMkMWO4ApNlAlz0ApToARPnfeJwAesEACXYPitEn8CkfgFAAAmwAhy232ISSe6oAsj8AB9btMAsuMHZgqLMAB0Yi20GbM6IQvHUAY5oAxNdHKTwAqJ/xAK2R8BMyAFIW77KFtRub8Tm2AGw3AGkjDIV7d/O6EMzD8AziDm0CYts/AARAz3Yw4QKAIMRADAIABpCRhp6HQQwCqHIjIYkRDGIcSDYlxcoWPxIIaBFCAsCEAggQOBATA4bFHsVgZbDgUUCDmy5MmUDBwanPWAyE4BA4UGEDAzAAeSBAY+mCBU584Xilo4RDAQacmlTQnuzKcg006MB01g+nnRIY5BWabsBHk0adaBK2W+SwKUplusAZgOfOow6lSZQwcWvStYcN+dO6saNlwwceKwjw9GlgygLWOhcisbNIrZ6ebAggWsMONZqAjQBqGYFgol9cPXlCXLYh1A1v/rYQNq/3gNIKhoIjtADCdefLilXheUL2eu/BMD6NGlR//U3PqFXquuN+/lazvzc3emj2dwZ8z35c2ykJ8ezBt65Vt+DxUQQ00H/Pn14/+xJ8F/AAP8D4nXkBDwwAT2eARBARVkMEBdeqvmQQDXeU2TNyj8L4r5hCqKgtog+KO2GV6bobY/IEBRRdYkeK0FSWob5bULlGJthg4H68w0Aw6ozTHQFjPtAANqI7I2zQwyhpkLdmqhiNoQq+yCBH7MkSijNLBAt4FCUEGoHgPQkssAvBQKyM0WG1MoMwM4Uswt2fzSzSLhJLPNJLeoJJEM4mAJSjvl5IvGKllD4ErCAsj/wIEKBiAgAhJIGijMRRt9NNIzX1usUkchlfRNTi/9tM5QPY3LIShCAGYHUf4cqFRMA5BSMioHWrPLOQ81LFECHjjBAg9GkHRSH3v9NdhhA0CzssWMBVZYod50Ftlo65wW2lMPGkaTXnTIw9WSfH122Fkfq1VRRjuNVVfRdgzgAxMkECxMoeCVd6hlJRNyIHuHerPeeP2tE+B7s3XIlAB4AZfgocpN7Nxrh2WXPqOUiiAFESYolFisLs54Y2U1HchijDWuduQAPDZ5IGlTLnnjJGMYYwsGWDjkoCdRVnljh3c6l+EzEe1MJHkZ3ZheogMwOtPUhEx6aTqFerqCQv+d/7rQJOWgwphkYLjZoJxrKprqQVOD2OWPg97VKJGSwglMH9u+CSWmg6zJbbqjDkBuk/J+k++3VXKoDis0eGBGnAEFPO+eHfr5aoKEpukqG/fimHK4tmraqrf00upNzD1nuc7QLU8SgGYY2MdJQEvXqvGDzl08pYk9FMCI2gzI4UeRWcthYM9+R/LFUqKkkUvXI991BSVqG0GD2lxLbTXWNBihNutrQ+NFH1mD5LVPagsAiittaAEJBNJXf/30M9GDffgRiOG1GOJnX49M7F8ff/3VD+W1G1yif+nTxGu2EIUBys8GhhlDURz4QAhGUIITpGAFLXhBDGZQgxuE4BjE9xtBEIZQhCMkYQlNeEIUplCFK2RhC134Qhi6MCAAOw==\"}]}"},{"id":44509,"title":"Determine if input is a valid AHP evaluation matrix","description":"Input is a matrix. Output is a true or false statement (1 or 0). Return true if input is a valid Analytic Hierarchy Process evaluation matrix. \r\n\r\nIn a valid AHP matrix;\r\n\r\n* All diagonal elements should be 1\r\n* Lower triangular part should be element-wise reciprocals of upper triangular part\r\n* Square matrix\r\n\r\nFor example\r\n\r\n   [ 1   2\r\n    1/2  1]  -  \u003e True\r\n\r\n   [1 5\r\n    2 1 ]   -  \u003e False\r\n\r\n   [1 5 \r\n   1/5 2]   -  \u003e False\r\n\r\nNote: See test suite 19 for what is asked about rounding","description_html":"\u003cp\u003eInput is a matrix. Output is a true or false statement (1 or 0). Return true if input is a valid Analytic Hierarchy Process evaluation matrix.\u003c/p\u003e\u003cp\u003eIn a valid AHP matrix;\u003c/p\u003e\u003cul\u003e\u003cli\u003eAll diagonal elements should be 1\u003c/li\u003e\u003cli\u003eLower triangular part should be element-wise reciprocals of upper triangular part\u003c/li\u003e\u003cli\u003eSquare matrix\u003c/li\u003e\u003c/ul\u003e\u003cp\u003eFor example\u003c/p\u003e\u003cpre\u003e   [ 1   2\r\n    1/2  1]  -  \u0026gt; True\u003c/pre\u003e\u003cpre\u003e   [1 5\r\n    2 1 ]   -  \u0026gt; False\u003c/pre\u003e\u003cpre\u003e   [1 5 \r\n   1/5 2]   -  \u0026gt; False\u003c/pre\u003e\u003cp\u003eNote: See test suite 19 for what is asked about rounding\u003c/p\u003e","function_template":"function y = isValidAHP(x)\r\n  y = x;\r\nend","test_suite":"%%\r\nx = [1 1\r\n    1 1];\r\ny_correct = 1;\r\nassert(isequal(isValidAHP(x),y_correct))\r\n\r\n%%\r\nx = [1 2\r\n    1/2 1];\r\ny_correct = 1;\r\nassert(isequal(isValidAHP(x),y_correct))\r\n\r\n\r\n%%\r\nk = randi([2 9]);\r\nx = [1 k\r\n    1/k 1];\r\ny_correct = 1;\r\nassert(isequal(isValidAHP(x),y_correct))\r\n\r\n%%\r\nk = randi([2 9]);\r\nx = [1 k\r\n    1/k k];\r\ny_correct = 0;\r\nassert(isequal(isValidAHP(x),y_correct))\r\n\r\n%%\r\nx = [1 5\r\n    1/5 1];\r\ny_correct = 1;\r\nassert(isequal(isValidAHP(x),y_correct))\r\n\r\n%%\r\nx = [1 4\r\n    1/4 2];\r\ny_correct = 0;\r\nassert(isequal(isValidAHP(x),y_correct))\r\n\r\n%%\r\nx = [1 1 1\r\n    1 1 1\r\n    1 1 1];\r\ny_correct = 1;\r\nassert(isequal(isValidAHP(x),y_correct))\r\n\r\n%%\r\nx = [1 2 3\r\n    1/2 1 4\r\n    1/3 1/4 1];\r\ny_correct = 1;\r\nassert(isequal(isValidAHP(x),y_correct))\r\n\r\n%%\r\nx = [1 2 3\r\n    1/2 0 4\r\n    1/3 1/4 1];\r\ny_correct = 0;\r\nassert(isequal(isValidAHP(x),y_correct))\r\n\r\n%%\r\nx = [1 1 1\r\n    1 1 1\r\n    1 1 0.5];\r\ny_correct = 0;\r\nassert(isequal(isValidAHP(x),y_correct))\r\n\r\n\r\n%%\r\nx = [1 1 95\r\n    1 1 1\r\n    1 1 1];\r\ny_correct = 0;\r\nassert(isequal(isValidAHP(x),y_correct))\r\n\r\n%%\r\nx = [1 2 2\r\n    1/2 1 2\r\n    1/2 1/2 1];\r\ny_correct = 1;\r\nassert(isequal(isValidAHP(x),y_correct))\r\n\r\n\r\n%%\r\nm = randi([2 5]);\r\nx = [1 m m\r\n    1/m 1 m\r\n    1/m 1/m 1];\r\ny_correct = 1;\r\nassert(isequal(isValidAHP(x),y_correct))\r\n\r\n\r\n%%\r\nx = [1 2 3 4 \r\n    1/2 1 5 6\r\n    1/3 1/5 1 7\r\n    1/4 1/6 1/7 1];\r\ny_correct = 1;\r\nassert(isequal(isValidAHP(x),y_correct))\r\n\r\n\r\n%%\r\nx = [0 2 3 4 \r\n    1/2 0 5 6\r\n    1/3 1/5 0 7\r\n    1/4 1/6 1/7 0];\r\ny_correct = 0;\r\nassert(isequal(isValidAHP(x),y_correct))\r\n\r\n%% check size also\r\nx = [1 1 1 1 \r\n    1 1 1 1 \r\n    1 1 1 1 ];\r\ny_correct = 0;\r\nassert(isequal(isValidAHP(x),y_correct))\r\n\r\n\r\n%% check size also\r\nx = [1 1 1 \r\n    1 1 1 \r\n    1 1 1 \r\n    1 1 1 ];\r\ny_correct = 0;\r\nassert(isequal(isValidAHP(x),y_correct))\r\n\r\n\r\n%%\r\nx = [1 1 1 1 1 \r\n    1 1 1 1 1\r\n    1 1 1 1 1 \r\n    1 1 1 1 1\r\n    1 1 1 1 1];\r\ny_correct = 1;\r\nassert(isequal(isValidAHP(x),y_correct))\r\n\r\n\r\n%%\r\nx = [1 0.125 0.125 0.111 0.125 0.125;\r\n    8 1 1 0.143 0.143 0.2;\r\n    8 1 1 0.111 0.111 0.143;\r\n    9 7 9 1 5 7;\r\n    8 7 9 0.2 1 0.333;\r\n    8 5 7 0.143 3 1];\r\ny_correct = 1;\r\nassert(isequal(isValidAHP(x),y_correct))\r\n\r\n\r\n\r\n%%\r\nfor idx = 1:20\r\n    x = ones(randi([1 20]));\r\n    y_correct = 1;\r\n    assert(isequal(isValidAHP(x),y_correct))\r\nend\r\n\r\n%%\r\nfor idx = 1:20\r\n    x = zeros(randi([1 20]));\r\n    y_correct = 0;\r\n    assert(isequal(isValidAHP(x),y_correct))\r\nend\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":143,"test_suite_updated_at":"2018-01-30T07:15:13.000Z","rescore_all_solutions":false,"group_id":1,"created_at":"2018-01-30T04:30:42.000Z","updated_at":"2026-08-07T14:33:38.000Z","published_at":"2018-01-30T06:27:14.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\u003eInput is a matrix. Output is a true or false statement (1 or 0). Return true if input is a valid Analytic Hierarchy Process evaluation matrix.\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 a valid AHP matrix;\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\u003eAll diagonal elements should be 1\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\u003eLower triangular part should be element-wise reciprocals of upper triangular part\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\u003eSquare matrix\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\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[   [ 1   2\\n    1/2  1]  -  \u003e True\\n\\n   [1 5\\n    2 1 ]   -  \u003e False\\n\\n   [1 5 \\n   1/5 2]   -  \u003e False]]\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: See test suite 19 for what is asked about rounding\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":61476,"title":"Check if an FAA N-Number is Valid","description":"An N-number is a unique registration assigned by the Federal Aviation Administration (FAA) to every civil aircraft operating in the United States. Think of it as the aviation equivalent of a license plate. N-Numbers consist of a series of alphanumeric characters. U.S. registration numbers may not exceed five characters in addition to the standard U.S. registration prefix letter N. These characters may be:\r\nOne to five numbers (e.g. N12345)\r\nOne to four numbers followed by one letter (e.g. N1234Z)\r\nOne to three numbers followed by two letters (e.g. N123AZ)\r\nIn addition there are the following restrictions:\r\nThe first character must be a number 1 through 9 (e.g. N012C is invalid)\r\nThe number cannot contain the letters 'O' or 'I' to avoid confusion with numbers '0' and '1' (e.g. N45O is invalid)\r\nGiven an N-number, return true if it is valid and false if it is not.","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: 267.188px; display: block; min-width: 0px; padding-block-start: 0px; padding-inline-start: 2px; padding-left: 2px; padding-top: 0px; perspective-origin: 468.5px 133.594px; transform-origin: 468.5px 133.594px; vertical-align: baseline; \"\u003e\u003cdiv style=\"block-size: 63px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 444.5px 31.5px; text-align: left; transform-origin: 444.5px 31.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=\"\"\u003eAn N-number is a unique registration assigned by the Federal Aviation Administration (FAA) to every civil aircraft operating in the United States. Think of it as the aviation equivalent of a license plate. N-Numbers consist of a series of alphanumeric characters. U.S. registration numbers may not exceed five characters in addition to the standard U.S. registration prefix letter N. These characters may be:\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cul style=\"block-size: 61.3125px; 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: 451.5px 30.6562px; transform-origin: 451.5px 30.6562px; 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: 423.5px 10.2188px; text-align: left; transform-origin: 423.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=\"\"\u003eOne to five numbers (e.g. N12345)\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: 423.5px 10.2188px; text-align: left; transform-origin: 423.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=\"\"\u003eOne to four numbers followed by one letter (e.g. N1234Z)\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: 423.5px 10.2188px; text-align: left; transform-origin: 423.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=\"\"\u003eOne to three numbers followed by two letters (e.g. N123AZ)\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; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 444.5px 10.5px; text-align: left; transform-origin: 444.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=\"\"\u003eIn addition there are the following restrictions:\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003col style=\"block-size: 40.875px; font-family: Helvetica, Arial, sans-serif; list-style-type: decimal; margin-block-end: 20px; margin-block-start: 10px; margin-bottom: 20px; margin-top: 10px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 451.5px 20.4375px; transform-origin: 451.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: 423.5px 10.2188px; text-align: left; transform-origin: 423.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=\"\"\u003eThe first character must be a number 1 through 9 (e.g. N012C is invalid)\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: 423.5px 10.2188px; text-align: left; transform-origin: 423.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=\"\"\u003eThe number cannot contain the letters 'O' or 'I' to avoid confusion with numbers '0' and '1' (e.g. N45O is invalid)\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003c/ol\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: 444.5px 10.5px; text-align: left; transform-origin: 444.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=\"\"\u003eGiven an N-number, return true if it is valid and false if it is not.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e","function_template":"function TF = IsValid(N_number)\r\n    TF=true;\r\nend","test_suite":"%% Test Case 1\r\nN_number='N1';\r\nTF = IsValid(N_number)\r\nassert(TF)\r\n\r\n%% Test Case 2\r\nN_number='N299OV';\r\nTF = IsValid(N_number)\r\nassert(~TF)\r\n\r\n%% Test Case 3\r\nN_number='N12345';\r\nTF = IsValid(N_number)\r\nassert(TF)\r\n\r\n%% Test Case 4\r\nN_number='N7TT';\r\nTF = IsValid(N_number)\r\nassert(TF)\r\n\r\n%% Test Case 5\r\nN_number='N9CLP';\r\nTF = IsValid(N_number)\r\nassert(~TF)\r\n\r\n%% Test Case 6\r\nN_number='N8W';\r\nTF = IsValid(N_number)\r\nassert(TF)\r\n\r\n%% Test Case 7\r\nN_number='N491652';\r\nTF = IsValid(N_number)\r\nassert(~TF)\r\n\r\n%% Test Case 8\r\nN_number='NN65UK';\r\nTF = IsValid(N_number)\r\nassert(~TF)\r\n\r\n%% Test Case 9\r\nN_number='N453RD';\r\nTF = IsValid(N_number)\r\nassert(TF)\r\n\r\n%% Test Case 10\r\nN_number='N765G9';\r\nTF = IsValid(N_number)\r\nassert(~TF)\r\n\r\n%% Test Case 11\r\nN_number='NY';\r\nTF = IsValid(N_number)\r\nassert(~TF)\r\n\r\n%% Test Case 12\r\nN_number='N56BY';\r\nTF = IsValid(N_number)\r\nassert(TF)\r\n\r\n%% Test Case 13\r\nN_number='N55A';\r\nTF = IsValid(N_number)\r\nassert(TF)\r\n\r\n%% Test Case 14\r\nN_number='N66';\r\nTF = IsValid(N_number)\r\nassert(TF)\r\n\r\n%% Test Case 15\r\nN_number='3409R';\r\nTF = IsValid(N_number)\r\nassert(~TF)\r\n\r\n%% Test Case 16\r\nN_number='N45I';\r\nTF = IsValid(N_number)\r\nassert(~TF)\r\n\r\n%% Test Case 17\r\nN_number='NC2013';\r\nTF = IsValid(N_number)\r\nassert(~TF)\r\n\r\n%% Test Case 18\r\nN_number='N05D';\r\nTF = IsValid(N_number)\r\nassert(~TF)\r\n\r\n%% Test Case 19\r\nN_number='N113P';\r\nTF = IsValid(N_number)\r\nassert(TF)\r\n\r\n%% Test Case 20\r\nN_number='N-3452';\r\nTF = IsValid(N_number)\r\nassert(~TF)\r\n\r\n%% Test Case 21\r\nN_number='N9999M';\r\nTF = IsValid(N_number)\r\nassert(TF)\r\n\r\n%% Test Case 22\r\nN_number='N 2338';\r\nTF = IsValid(N_number)\r\nassert(~TF)\r\n\r\n%% Test Case 23\r\nN_number='N88j';\r\nTF = IsValid(N_number)\r\nassert(~TF)\r\n\r\n%% Test Case 24\r\nN_number='N9224';\r\nTF = IsValid(N_number)\r\nassert(TF)\r\n\r\n%% Test Case 25\r\nN_number='N909';\r\nTF = IsValid(N_number)\r\nassert(TF)\r\n","published":true,"deleted":false,"likes_count":1,"comments_count":0,"created_by":4910069,"edited_by":4910069,"edited_at":"2026-09-10T17:56:22.000Z","deleted_by":null,"deleted_at":null,"solvers_count":1,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2026-09-10T15:21:58.000Z","updated_at":"2026-09-10T22:56:17.000Z","published_at":"2026-09-10T17:56:23.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\u003eAn N-number is a unique registration assigned by the Federal Aviation Administration (FAA) to every civil aircraft operating in the United States. Think of it as the aviation equivalent of a license plate. N-Numbers consist of a series of alphanumeric characters. U.S. registration numbers may not exceed five characters in addition to the standard U.S. registration prefix letter N. These characters may be:\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\u003eOne to five numbers (e.g. N12345)\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\u003eOne to four numbers followed by one letter (e.g. N1234Z)\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\u003eOne to three numbers followed by two letters (e.g. N123AZ)\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\u003eIn addition there are the following restrictions:\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=\\\"2\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe first character must be a number 1 through 9 (e.g. N012C is invalid)\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=\\\"2\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe number cannot contain the letters 'O' or 'I' to avoid confusion with numbers '0' and '1' (e.g. N45O is invalid)\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 N-number, return true if it is valid and false if it is not.\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":{"problems":[{"id":3042,"title":"Fill-a-pix - Solution Checker","description":"\u003chttp://www.conceptispuzzles.com/index.aspx?uri=puzzle/fill-a-pix/rules Fill-a-pix\u003e is a logic puzzle game similar to Pic-a-Pix (aka Logic art) and Minesweeper. An example starting board is shown below on the left with the completed board shown to its right. Each number in the board indicates how many surrounding cells, including itself, are to be filled in. There are (up to) nine total cells associated with each number: four immediately adjacent (up, down, left, and right), four diagonally adjacent (one touching each corner), and the central cell (where the number is located).\r\n\r\nBased on this logic, all 0's and 9's are determinant, as all nine cells are either empty or filled, respectively, for these numbers. Also, all 6's on the board edges and 4's in the corners should be completely filled in, as they only involve 6 or 4 cells, respectively.\r\n\r\n\u003c\u003chttp://www.conceptispuzzles.com/picture/11/1418.gif\u003e\u003e \r\n\r\n\u003c\u003chttp://www.conceptispuzzles.com/picture/11/1420.gif\u003e\u003e\r\n\r\nFor this problem, you will be provided with various boards and solutions to each board. Write a function to determine if the solution is correct for the given board. The board will be filled with NaN's where there are no number clues; these cells should not be checked. The solution board will be filled with 1's (filled) and 0's (empty).\r\n\r\nA related problem is \u003chttps://www.mathworks.com/matlabcentral/cody/problems/3043-fill-a-pix-solver-basic Fill-a-pix - Solver (basic)\u003e.","description_html":"\u003cp\u003e\u003ca href = \"http://www.conceptispuzzles.com/index.aspx?uri=puzzle/fill-a-pix/rules\"\u003eFill-a-pix\u003c/a\u003e is a logic puzzle game similar to Pic-a-Pix (aka Logic art) and Minesweeper. An example starting board is shown below on the left with the completed board shown to its right. Each number in the board indicates how many surrounding cells, including itself, are to be filled in. There are (up to) nine total cells associated with each number: four immediately adjacent (up, down, left, and right), four diagonally adjacent (one touching each corner), and the central cell (where the number is located).\u003c/p\u003e\u003cp\u003eBased on this logic, all 0's and 9's are determinant, as all nine cells are either empty or filled, respectively, for these numbers. Also, all 6's on the board edges and 4's in the corners should be completely filled in, as they only involve 6 or 4 cells, respectively.\u003c/p\u003e\u003cimg src = \"http://www.conceptispuzzles.com/picture/11/1418.gif\"\u003e\u003cimg src = \"http://www.conceptispuzzles.com/picture/11/1420.gif\"\u003e\u003cp\u003eFor this problem, you will be provided with various boards and solutions to each board. Write a function to determine if the solution is correct for the given board. The board will be filled with NaN's where there are no number clues; these cells should not be checked. The solution board will be filled with 1's (filled) and 0's (empty).\u003c/p\u003e\u003cp\u003eA related problem is \u003ca href = \"https://www.mathworks.com/matlabcentral/cody/problems/3043-fill-a-pix-solver-basic\"\u003eFill-a-pix - Solver (basic)\u003c/a\u003e.\u003c/p\u003e","function_template":"function [tf] = fill_a_pix_solution_check(board,solution)\r\n\r\ntf = 1;\r\n\r\nend\r\n","test_suite":"%%\r\nboard = [-1,-1,-1,-1,-1,-1,-1,-1,0,-1; -1,8,8,-1,2,-1,0,-1,-1,-1; 5,-1,8,-1,-1,-1,-1,-1,-1,-1; -1,-1,-1,-1,-1,2,-1,-1,-1,2; 1,-1,-1,-1,4,5,6,-1,-1,-1; -1,0,-1,-1,-1,7,9,-1,-1,6; -1,-1,-1,6,-1,-1,9,-1,-1,6; -1,-1,6,6,8,7,8,7,-1,5; -1,4,-1,6,6,6,-1,6,-1,4; -1,-1,-1,-1,-1,-1,3,-1,-1,-1];\r\nboard(board==-1) = NaN;\r\nsolution = [0,1,1,0,0,0,0,0,0,0; 1,1,1,1,0,0,0,0,0,0; 1,1,1,1,0,0,0,0,0,0; 0,1,1,0,0,0,0,0,0,0; 0,0,0,0,0,1,1,1,1,1; 0,0,0,1,1,1,1,1,1,1; 0,0,0,1,0,1,1,1,1,1; 0,1,1,1,1,1,1,1,1,1; 0,1,0,1,1,1,0,1,0,1; 0,0,1,0,0,0,1,0,1,0];\r\ntf_corr = 1;\r\nassert(isequal(fill_a_pix_solution_check(board,solution),tf_corr))\r\n\r\n%%\r\nboard = [-1,2,3,-1,-1,0,-1,-1,-1,-1; -1,-1,-1,-1,3,-1,2,-1,-1,6; -1,-1,5,-1,5,3,-1,5,7,4; -1,4,-1,5,-1,5,-1,6,-1,3; -1,-1,4,-1,5,-1,6,-1,-1,3; -1,-1,-1,2,-1,5,-1,-1,-1,-1; 4,-1,1,-1,-1,-1,1,1,-1,-1; 4,-1,1,-1,-1,-1,1,-1,4,-1; -1,-1,-1,-1,6,-1,-1,-1,-1,4; -1,4,4,-1,-1,-1,-1,4,-1,-1];\r\nboard(board==-1) = NaN;\r\nsolution = [0,1,1,0,0,0,0,0,1,1; 0,0,0,1,0,0,0,1,1,1; 0,0,1,1,1,0,0,1,1,1; 0,1,1,0,1,1,0,1,0,0; 0,1,0,0,0,1,1,1,1,0; 1,1,0,0,1,1,0,0,1,1; 1,0,0,0,1,0,0,0,0,1;  1,0,0,0,1,0,0,0,0,1; 1,1,0,0,1,1,0,0,1,1; 0,1,1,1,1,1,1,1,1,0];\r\ntf_corr = 1;\r\nassert(isequal(fill_a_pix_solution_check(board,solution),tf_corr))\r\n\r\n%%\r\nboard = [0,-1,-1,4,3,2,1,-1,-1,-1,-1,-1,3,-1,-1; -1,-1,5,-1,-1,4,-1,-1,4,4,-1,-1,-1,-1,3; -1,5,4,5,4,5,5,-1,5,3,-1,1,2,-1,3; 4,-1,-1,-1,4,-1,-1,4,2,-1,1,-1,-1,-1,-1; -1,-1,5,4,-1,2,2,-1,1,0,-1,-1,7,5,-1; -1,-1,-1,5,-1,-1,0,-1,-1,-1,-1,4,5,-1,2; 4,-1,-1,5,4,2,0,0,-1,-1,-1,5,6,-1,-1; 5,-1,-1,6,5,-1,-1,-1,-1,-1,3,3,3,-1,3; -1,-1,5,-1,5,3,-1,-1,-1,-1,-1,-1,3,-1,-1; 5,-1,-1,6,5,-1,3,5,-1,6,-1,-1,0,-1,0; -1,-1,5,-1,4,3,2,4,5,-1,4,-1,-1,1,-1; -1,7,-1,-1,5,-1,-1,1,-1,5,5,5,-1,-1,-1; -1,-1,6,4,4,4,3,1,2,4,-1,-1,6,4,-1; -1,5,-1,6,-1,-1,-1,-1,-1,4,6,-1,-1,-1,-1; -1,-1,-1,-1,-1,-1,3,2,0,-1,4,4,3,-1,2];\r\nboard(board==-1) = NaN;\r\nsolution = [0,0,0,1,1,0,0,0,0,0,1,1,1,1,0; 0,0,1,0,1,0,0,1,1,1,0,0,0,0,1; 1,1,1,1,0,1,1,0,1,0,0,0,0,0,1; 1,0,0,0,1,0,1,1,0,0,0,0,1,1,0; 0,1,1,1,0,0,0,0,0,0,0,1,1,0,0; 0,1,0,1,0,0,0,0,0,0,0,1,1,1,0; 1,1,1,0,1,0,0,0,0,0,0,0,0,0,1; 1,0,0,1,1,0,0,0,0,0,1,1,1,1,1; 1,1,1,1,0,1,0,0,1,1,0,0,0,0,0; 1,0,0,1,0,0,1,1,1,1,0,0,0,0,0; 1,1,1,1,1,0,0,0,1,0,1,0,0,0,0; 1,1,0,0,1,0,0,0,0,1,0,1,1,0,0; 0,1,1,1,0,1,0,0,0,1,1,0,1,1,0; 0,1,1,0,0,1,1,0,0,0,1,1,0,1,0; 0,0,1,1,1,0,1,0,0,0,1,1,0,0,1];\r\ntf_corr = 1;\r\nassert(isequal(fill_a_pix_solution_check(board,solution),tf_corr))\r\n\r\n%%\r\nboard = [-1,-1,3,3,-1,-1,-1,-1,-1,-1; 3,-1,-1,-1,-1,-1,0,-1,0,-1; -1,-1,3,4,-1,3,-1,-1,-1,-1; 3,-1,4,-1,-1,-1,-1,3,-1,-1; 2,3,-1,5,-1,4,4,-1,-1,4; -1,-1,5,4,6,6,-1,4,-1,4; -1,-1,-1,-1,-1,3,3,-1,-1,4; -1,3,-1,-1,5,6,5,-1,-1,4; -1,-1,-1,7,-1,-1,-1,7,-1,5; -1,4,-1,-1,6,-1,6,-1,5,-1];\r\nboard(board==-1) = NaN;\r\nsolution = [0,0,1,1,0,0,0,0,0,0; 0,1,0,0,1,0,0,0,0,0; 1,1,0,0,1,0,0,0,0,0; 0,0,1,0,1,0,0,1,0,1; 0,1,0,1,1,1,1,0,1,1; 0,1,0,1,0,1,0,1,0,1; 0,1,0,0,1,1,1,0,0,1; 0,0,1,0,0,0,0,0,1,1; 0,0,1,1,1,1,1,1,1,0; 1,1,1,1,1,1,1,1,1,1];\r\ntf_corr = 0;\r\nassert(isequal(fill_a_pix_solution_check(board,solution),tf_corr))\r\n\r\n%%\r\nboard = [-1,-1,-1,4,-1,-1,4,-1,6,-1,5,4,-1,-1,1; -1,4,-1,-1,-1,-1,-1,-1,-1,7,-1,-1,-1,-1,-1; -1,-1,4,-1,-1,0,1,-1,4,-1,5,-1,6,-1,-1; 4,-1,-1,0,-1,0,-1,3,-1,-1,4,-1,5,-1,4; -1,-1,1,-1,-1,2,-1,3,5,4,-1,4,5,-1,-1; -1,2,-1,-1,3,-1,5,-1,-1,5,5,5,-1,-1,-1; -1,-1,1,2,-1,5,-1,3,4,-1,-1,-1,-1,-1,5; -1,0,0,1,-1,-1,5,-1,6,-1,7,-1,6,-1,4; -1,-1,-1,-1,-1,-1,-1,-1,5,5,-1,-1,6,-1,-1; -1,0,-1,-1,4,-1,6,-1,-1,-1,6,-1,7,-1,-1; -1,-1,-1,-1,-1,8,-1,8,7,-1,-1,-1,7,-1,3; -1,-1,5,-1,7,-1,8,-1,7,7,-1,-1,5,-1,-1; -1,2,-1,8,-1,8,-1,-1,-1,6,5,-1,-1,-1,5; -1,1,-1,5,-1,5,-1,3,-1,-1,5,-1,3,-1,4; -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2,3,-1,-1];\r\nboard(board==-1) = NaN;\r\nsolution = [0,0,0,1,1,1,1,1,1,1,1,1,0,0,0; 0,1,1,1,0,0,0,1,1,1,1,0,1,1,0; 1,1,0,0,0,0,0,0,0,0,1,1,0,1,1; 1,0,0,0,0,0,0,0,1,0,0,1,1,0,1; 1,0,0,0,0,0,0,1,1,1,0,0,1,0,1; 0,1,0,1,1,1,0,0,0,1,0,0,1,1,1; 0,0,0,0,0,1,1,1,0,1,1,1,1,0,1; 0,0,0,0,1,0,0,1,0,0,1,1,0,1,1; 0,0,0,0,0,0,0,1,1,1,1,0,1,1,0; 0,0,0,0,1,1,1,0,1,0,0,1,1,0,0; 0,0,0,1,0,1,1,1,1,1,1,1,1,1,0; 0,0,1,1,1,1,1,1,1,1,1,0,1,1,1; 0,0,1,1,1,0,1,1,0,0,1,0,0,0,1; 0,0,0,1,1,1,1,0,0,1,1,0,0,1,1; 0,0,0,0,0,0,0,0,0,1,0,1,0,1,0];\r\ntf_corr = 0;\r\nassert(isequal(fill_a_pix_solution_check(board,solution),tf_corr))\r\n\r\n%%\r\nboard = [0,-1,-1,4,3,2,1,-1,-1,-1,-1,-1,3,-1,-1; -1,-1,5,-1,-1,4,-1,-1,4,4,-1,-1,-1,-1,3; -1,5,4,5,4,5,5,-1,5,3,-1,1,2,-1,3; 4,-1,-1,-1,4,-1,-1,4,2,-1,1,-1,-1,-1,-1; -1,-1,5,4,-1,2,2,-1,1,0,-1,-1,7,5,-1; -1,-1,-1,5,-1,-1,0,-1,-1,-1,-1,4,5,-1,2; 4,-1,-1,5,4,2,0,0,-1,-1,-1,5,6,-1,-1; 5,-1,-1,6,5,-1,-1,-1,-1,-1,3,3,3,-1,3; -1,-1,5,-1,5,3,-1,-1,-1,-1,-1,-1,3,-1,-1; 5,-1,-1,6,5,-1,3,5,-1,6,-1,-1,0,-1,0; -1,-1,5,-1,4,3,2,4,5,-1,4,-1,-1,1,-1; -1,7,-1,-1,5,-1,-1,1,-1,5,5,5,-1,-1,-1; -1,-1,6,4,4,4,3,1,2,4,-1,-1,6,4,-1; -1,5,-1,6,-1,-1,-1,-1,-1,4,6,-1,-1,-1,-1; -1,-1,-1,-1,-1,-1,3,2,0,-1,4,4,3,-1,2];\r\nboard(board==-1) = NaN;\r\nsolution = [0,0,0,1,1,0,0,0,0,0,1,1,1,1,0; 0,0,1,0,1,0,0,1,1,1,0,0,0,0,1; 1,1,1,1,0,1,1,0,1,0,0,0,0,0,1; 1,0,0,0,1,0,1,1,0,0,0,0,1,1,0; 0,1,1,1,0,0,0,0,0,0,0,1,1,0,0; 0,1,0,1,0,0,0,0,0,0,0,1,1,1,0; 1,1,1,0,1,0,0,0,0,0,0,0,0,0,1; 1,0,0,1,1,0,0,0,0,0,1,1,1,1,1; 1,1,1,0,0,1,0,0,1,1,0,0,0,0,0; 1,0,0,1,0,0,1,1,1,1,0,0,0,0,0; 1,1,1,1,1,0,0,0,1,0,1,0,0,0,0; 1,1,0,0,1,0,0,0,0,1,0,1,1,0,0; 0,1,1,1,0,1,0,0,0,1,1,0,1,1,0; 0,1,1,0,0,1,1,0,0,0,1,1,0,1,0; 0,0,1,1,1,0,1,0,0,0,1,1,0,0,1];\r\ntf_corr = 0;\r\nassert(isequal(fill_a_pix_solution_check(board,solution),tf_corr))\r\n\r\n%%\r\nboard = [-1,-1,-1,-1,-1,-1,-1,-1,0,-1; -1,8,8,-1,2,-1,0,-1,-1,-1; 5,-1,8,-1,-1,-1,-1,-1,-1,-1; -1,-1,-1,-1,-1,2,-1,-1,-1,2; 1,-1,-1,-1,4,5,6,-1,-1,-1; -1,0,-1,-1,-1,7,9,-1,-1,6; -1,-1,-1,6,-1,-1,9,-1,-1,6; -1,-1,6,6,8,7,8,7,-1,5; -1,4,-1,6,6,6,-1,6,-1,4; -1,-1,-1,-1,-1,-1,3,-1,-1,-1];\r\nboard(board==-1) = NaN;\r\nsolution = [0,1,1,0,0,0,0,0,0,0; 1,1,1,1,0,0,0,0,0,0; 1,1,1,1,0,0,0,0,0,0; 0,1,1,0,0,0,0,0,0,0; 0,0,0,0,0,1,1,1,1,1; 0,0,0,1,1,1,1,1,1,1; 0,0,0,1,0,1,1,1,1,1; 0,1,1,1,1,1,1,1,1,1; 0,1,0,0,1,1,0,1,0,1; 0,0,1,0,0,0,1,0,1,0];\r\ntf_corr = 0;\r\nassert(isequal(fill_a_pix_solution_check(board,solution),tf_corr))\r\n\r\n%%\r\nboard = [-1,2,3,-1,-1,0,-1,-1,-1,-1; -1,-1,-1,-1,3,-1,2,-1,-1,6; -1,-1,5,-1,5,3,-1,5,7,4; -1,4,-1,5,-1,5,-1,6,-1,3; -1,-1,4,-1,5,-1,6,-1,-1,3; -1,-1,-1,2,-1,5,-1,-1,-1,-1; 4,-1,1,-1,-1,-1,1,1,-1,-1; 4,-1,1,-1,-1,-1,1,-1,4,-1; -1,-1,-1,-1,6,-1,-1,-1,-1,4; -1,4,4,-1,-1,-1,-1,4,-1,-1];\r\nboard(board==-1) = NaN;\r\nsolution = [0,1,1,0,0,0,0,0,1,1; 0,0,0,1,0,0,0,1,1,1; 0,0,1,1,1,0,0,1,1,1; 0,1,1,0,1,1,0,1,0,0; 0,1,0,1,0,1,1,1,1,0; 1,1,0,0,1,1,0,0,1,1; 1,0,0,0,1,0,0,0,0,1;  1,0,0,0,1,0,0,0,0,1; 1,1,0,0,1,1,0,0,1,1; 0,1,1,1,1,1,1,1,1,0];\r\ntf_corr = 0;\r\nassert(isequal(fill_a_pix_solution_check(board,solution),tf_corr))\r\n\r\n%%\r\nboard = [-1,-1,3,3,-1,-1,-1,-1,-1,-1; 3,-1,-1,-1,-1,-1,0,-1,0,-1; -1,-1,3,4,-1,3,-1,-1,-1,-1; 3,-1,4,-1,-1,-1,-1,3,-1,-1; 2,3,-1,5,-1,4,4,-1,-1,4; -1,-1,5,4,6,6,-1,4,-1,4; -1,-1,-1,-1,-1,3,3,-1,-1,4; -1,3,-1,-1,5,6,5,-1,-1,4; -1,-1,-1,7,-1,-1,-1,7,-1,5; -1,4,-1,-1,6,-1,6,-1,5,-1];\r\nboard(board==-1) = NaN;\r\nsolution = [0,0,1,1,0,0,0,0,0,0; 0,1,0,0,1,0,0,0,0,0; 1,1,0,0,1,0,0,0,0,0; 0,0,1,0,1,0,0,1,0,1; 0,1,0,1,1,1,1,0,1,1; 0,1,0,1,0,0,0,1,0,1; 0,1,0,0,1,1,1,0,0,1; 0,0,1,0,0,0,0,0,1,1; 0,0,1,1,1,1,1,1,1,0; 1,1,1,1,1,1,1,1,1,1];\r\ntf_corr = 1;\r\nassert(isequal(fill_a_pix_solution_check(board,solution),tf_corr))\r\n\r\n%%\r\nboard = [-1,-1,-1,4,-1,-1,4,-1,6,-1,5,4,-1,-1,1; -1,4,-1,-1,-1,-1,-1,-1,-1,7,-1,-1,-1,-1,-1; -1,-1,4,-1,-1,0,1,-1,4,-1,5,-1,6,-1,-1; 4,-1,-1,0,-1,0,-1,3,-1,-1,4,-1,5,-1,4; -1,-1,1,-1,-1,2,-1,3,5,4,-1,4,5,-1,-1; -1,2,-1,-1,3,-1,5,-1,-1,5,5,5,-1,-1,-1; -1,-1,1,2,-1,5,-1,3,4,-1,-1,-1,-1,-1,5; -1,0,0,1,-1,-1,5,-1,6,-1,7,-1,6,-1,4; -1,-1,-1,-1,-1,-1,-1,-1,5,5,-1,-1,6,-1,-1; -1,0,-1,-1,4,-1,6,-1,-1,-1,6,-1,7,-1,-1; -1,-1,-1,-1,-1,8,-1,8,7,-1,-1,-1,7,-1,3; -1,-1,5,-1,7,-1,8,-1,7,7,-1,-1,5,-1,-1; -1,2,-1,8,-1,8,-1,-1,-1,6,5,-1,-1,-1,5; -1,1,-1,5,-1,5,-1,3,-1,-1,5,-1,3,-1,4; -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2,3,-1,-1];\r\nboard(board==-1) = NaN;\r\nsolution = [0,0,0,1,1,1,1,1,1,1,1,1,0,0,0; 0,1,1,1,0,0,0,1,1,1,1,0,1,1,0; 1,1,0,0,0,0,0,0,0,0,1,1,0,1,1; 1,0,0,0,0,0,0,0,1,0,0,1,1,0,1; 1,0,0,0,0,0,0,1,1,1,0,0,1,0,1; 0,1,0,0,1,1,0,0,0,1,0,0,1,1,1; 0,0,0,0,0,1,1,1,0,1,1,1,1,0,1; 0,0,0,0,1,0,0,1,0,0,1,1,0,1,1; 0,0,0,0,0,0,0,1,1,1,1,0,1,1,0; 0,0,0,0,1,1,1,0,1,0,0,1,1,0,0; 0,0,0,1,0,1,1,1,1,1,1,1,1,1,0; 0,0,1,1,1,1,1,1,1,1,1,0,1,1,1; 0,0,1,1,1,0,1,1,0,0,1,0,0,0,1; 0,0,0,1,1,1,1,0,0,1,1,0,0,1,1; 0,0,0,0,0,0,0,0,0,1,0,1,0,1,0];\r\ntf_corr = 1;\r\nassert(isequal(fill_a_pix_solution_check(board,solution),tf_corr))\r\n","published":true,"deleted":false,"likes_count":2,"comments_count":0,"created_by":26769,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":23,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2015-02-25T02:55:09.000Z","updated_at":"2026-05-24T16:30:22.000Z","published_at":"2015-02-25T02:55:09.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/image\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/media/image1.gif\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/image\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/media/image2.gif\"}],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:hyperlink w:docLocation=\\\"http://www.conceptispuzzles.com/index.aspx?uri=puzzle/fill-a-pix/rules\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eFill-a-pix\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e is a logic puzzle game similar to Pic-a-Pix (aka Logic art) and Minesweeper. An example starting board is shown below on the left with the completed board shown to its right. Each number in the board indicates how many surrounding cells, including itself, are to be filled in. There are (up to) nine total cells associated with each number: four immediately adjacent (up, down, left, and right), four diagonally adjacent (one touching each corner), and the central cell (where the number is located).\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\u003eBased on this logic, all 0's and 9's are determinant, as all nine cells are either empty or filled, respectively, for these numbers. Also, all 6's on the board edges and 4's in the corners should be completely filled in, as they only involve 6 or 4 cells, respectively.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:customXml w:element=\\\"image\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"height\\\" w:val=\\\"-1\\\"/\u003e\u003cw:attr w:name=\\\"width\\\" w:val=\\\"-1\\\"/\u003e\u003cw:attr w:name=\\\"relationshipId\\\" w:val=\\\"rId1\\\"/\u003e\u003c/w:customXmlPr\u003e\u003c/w:customXml\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:customXml w:element=\\\"image\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"height\\\" w:val=\\\"-1\\\"/\u003e\u003cw:attr w:name=\\\"width\\\" w:val=\\\"-1\\\"/\u003e\u003cw:attr w:name=\\\"relationshipId\\\" w:val=\\\"rId2\\\"/\u003e\u003c/w:customXmlPr\u003e\u003c/w:customXml\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eFor this problem, you will be provided with various boards and solutions to each board. Write a function to determine if the solution is correct for the given board. The board will be filled with NaN's where there are no number clues; these cells should not be checked. The solution board will be filled with 1's (filled) and 0's (empty).\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 related problem is\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/3043-fill-a-pix-solver-basic\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eFill-a-pix - Solver (basic)\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\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"},{\"partUri\":\"/media/image1.gif\",\"contentType\":\"image/gif\",\"content\":\"data:image/gif;base64,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\"},{\"partUri\":\"/media/image2.gif\",\"contentType\":\"image/gif\",\"content\":\"data:image/gif;base64,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\"}]}"},{"id":44509,"title":"Determine if input is a valid AHP evaluation matrix","description":"Input is a matrix. Output is a true or false statement (1 or 0). Return true if input is a valid Analytic Hierarchy Process evaluation matrix. \r\n\r\nIn a valid AHP matrix;\r\n\r\n* All diagonal elements should be 1\r\n* Lower triangular part should be element-wise reciprocals of upper triangular part\r\n* Square matrix\r\n\r\nFor example\r\n\r\n   [ 1   2\r\n    1/2  1]  -  \u003e True\r\n\r\n   [1 5\r\n    2 1 ]   -  \u003e False\r\n\r\n   [1 5 \r\n   1/5 2]   -  \u003e False\r\n\r\nNote: See test suite 19 for what is asked about rounding","description_html":"\u003cp\u003eInput is a matrix. Output is a true or false statement (1 or 0). Return true if input is a valid Analytic Hierarchy Process evaluation matrix.\u003c/p\u003e\u003cp\u003eIn a valid AHP matrix;\u003c/p\u003e\u003cul\u003e\u003cli\u003eAll diagonal elements should be 1\u003c/li\u003e\u003cli\u003eLower triangular part should be element-wise reciprocals of upper triangular part\u003c/li\u003e\u003cli\u003eSquare matrix\u003c/li\u003e\u003c/ul\u003e\u003cp\u003eFor example\u003c/p\u003e\u003cpre\u003e   [ 1   2\r\n    1/2  1]  -  \u0026gt; True\u003c/pre\u003e\u003cpre\u003e   [1 5\r\n    2 1 ]   -  \u0026gt; False\u003c/pre\u003e\u003cpre\u003e   [1 5 \r\n   1/5 2]   -  \u0026gt; False\u003c/pre\u003e\u003cp\u003eNote: See test suite 19 for what is asked about rounding\u003c/p\u003e","function_template":"function y = isValidAHP(x)\r\n  y = x;\r\nend","test_suite":"%%\r\nx = [1 1\r\n    1 1];\r\ny_correct = 1;\r\nassert(isequal(isValidAHP(x),y_correct))\r\n\r\n%%\r\nx = [1 2\r\n    1/2 1];\r\ny_correct = 1;\r\nassert(isequal(isValidAHP(x),y_correct))\r\n\r\n\r\n%%\r\nk = randi([2 9]);\r\nx = [1 k\r\n    1/k 1];\r\ny_correct = 1;\r\nassert(isequal(isValidAHP(x),y_correct))\r\n\r\n%%\r\nk = randi([2 9]);\r\nx = [1 k\r\n    1/k k];\r\ny_correct = 0;\r\nassert(isequal(isValidAHP(x),y_correct))\r\n\r\n%%\r\nx = [1 5\r\n    1/5 1];\r\ny_correct = 1;\r\nassert(isequal(isValidAHP(x),y_correct))\r\n\r\n%%\r\nx = [1 4\r\n    1/4 2];\r\ny_correct = 0;\r\nassert(isequal(isValidAHP(x),y_correct))\r\n\r\n%%\r\nx = [1 1 1\r\n    1 1 1\r\n    1 1 1];\r\ny_correct = 1;\r\nassert(isequal(isValidAHP(x),y_correct))\r\n\r\n%%\r\nx = [1 2 3\r\n    1/2 1 4\r\n    1/3 1/4 1];\r\ny_correct = 1;\r\nassert(isequal(isValidAHP(x),y_correct))\r\n\r\n%%\r\nx = [1 2 3\r\n    1/2 0 4\r\n    1/3 1/4 1];\r\ny_correct = 0;\r\nassert(isequal(isValidAHP(x),y_correct))\r\n\r\n%%\r\nx = [1 1 1\r\n    1 1 1\r\n    1 1 0.5];\r\ny_correct = 0;\r\nassert(isequal(isValidAHP(x),y_correct))\r\n\r\n\r\n%%\r\nx = [1 1 95\r\n    1 1 1\r\n    1 1 1];\r\ny_correct = 0;\r\nassert(isequal(isValidAHP(x),y_correct))\r\n\r\n%%\r\nx = [1 2 2\r\n    1/2 1 2\r\n    1/2 1/2 1];\r\ny_correct = 1;\r\nassert(isequal(isValidAHP(x),y_correct))\r\n\r\n\r\n%%\r\nm = randi([2 5]);\r\nx = [1 m m\r\n    1/m 1 m\r\n    1/m 1/m 1];\r\ny_correct = 1;\r\nassert(isequal(isValidAHP(x),y_correct))\r\n\r\n\r\n%%\r\nx = [1 2 3 4 \r\n    1/2 1 5 6\r\n    1/3 1/5 1 7\r\n    1/4 1/6 1/7 1];\r\ny_correct = 1;\r\nassert(isequal(isValidAHP(x),y_correct))\r\n\r\n\r\n%%\r\nx = [0 2 3 4 \r\n    1/2 0 5 6\r\n    1/3 1/5 0 7\r\n    1/4 1/6 1/7 0];\r\ny_correct = 0;\r\nassert(isequal(isValidAHP(x),y_correct))\r\n\r\n%% check size also\r\nx = [1 1 1 1 \r\n    1 1 1 1 \r\n    1 1 1 1 ];\r\ny_correct = 0;\r\nassert(isequal(isValidAHP(x),y_correct))\r\n\r\n\r\n%% check size also\r\nx = [1 1 1 \r\n    1 1 1 \r\n    1 1 1 \r\n    1 1 1 ];\r\ny_correct = 0;\r\nassert(isequal(isValidAHP(x),y_correct))\r\n\r\n\r\n%%\r\nx = [1 1 1 1 1 \r\n    1 1 1 1 1\r\n    1 1 1 1 1 \r\n    1 1 1 1 1\r\n    1 1 1 1 1];\r\ny_correct = 1;\r\nassert(isequal(isValidAHP(x),y_correct))\r\n\r\n\r\n%%\r\nx = [1 0.125 0.125 0.111 0.125 0.125;\r\n    8 1 1 0.143 0.143 0.2;\r\n    8 1 1 0.111 0.111 0.143;\r\n    9 7 9 1 5 7;\r\n    8 7 9 0.2 1 0.333;\r\n    8 5 7 0.143 3 1];\r\ny_correct = 1;\r\nassert(isequal(isValidAHP(x),y_correct))\r\n\r\n\r\n\r\n%%\r\nfor idx = 1:20\r\n    x = ones(randi([1 20]));\r\n    y_correct = 1;\r\n    assert(isequal(isValidAHP(x),y_correct))\r\nend\r\n\r\n%%\r\nfor idx = 1:20\r\n    x = zeros(randi([1 20]));\r\n    y_correct = 0;\r\n    assert(isequal(isValidAHP(x),y_correct))\r\nend\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":143,"test_suite_updated_at":"2018-01-30T07:15:13.000Z","rescore_all_solutions":false,"group_id":1,"created_at":"2018-01-30T04:30:42.000Z","updated_at":"2026-08-07T14:33:38.000Z","published_at":"2018-01-30T06:27:14.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\u003eInput is a matrix. Output is a true or false statement (1 or 0). Return true if input is a valid Analytic Hierarchy Process evaluation matrix.\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 a valid AHP matrix;\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\u003eAll diagonal elements should be 1\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\u003eLower triangular part should be element-wise reciprocals of upper triangular part\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\u003eSquare matrix\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\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[   [ 1   2\\n    1/2  1]  -  \u003e True\\n\\n   [1 5\\n    2 1 ]   -  \u003e False\\n\\n   [1 5 \\n   1/5 2]   -  \u003e False]]\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: See test suite 19 for what is asked about rounding\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":61476,"title":"Check if an FAA N-Number is Valid","description":"An N-number is a unique registration assigned by the Federal Aviation Administration (FAA) to every civil aircraft operating in the United States. Think of it as the aviation equivalent of a license plate. N-Numbers consist of a series of alphanumeric characters. U.S. registration numbers may not exceed five characters in addition to the standard U.S. registration prefix letter N. These characters may be:\r\nOne to five numbers (e.g. N12345)\r\nOne to four numbers followed by one letter (e.g. N1234Z)\r\nOne to three numbers followed by two letters (e.g. N123AZ)\r\nIn addition there are the following restrictions:\r\nThe first character must be a number 1 through 9 (e.g. N012C is invalid)\r\nThe number cannot contain the letters 'O' or 'I' to avoid confusion with numbers '0' and '1' (e.g. N45O is invalid)\r\nGiven an N-number, return true if it is valid and false if it is not.","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: 267.188px; display: block; min-width: 0px; padding-block-start: 0px; padding-inline-start: 2px; padding-left: 2px; padding-top: 0px; perspective-origin: 468.5px 133.594px; transform-origin: 468.5px 133.594px; vertical-align: baseline; \"\u003e\u003cdiv style=\"block-size: 63px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 444.5px 31.5px; text-align: left; transform-origin: 444.5px 31.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=\"\"\u003eAn N-number is a unique registration assigned by the Federal Aviation Administration (FAA) to every civil aircraft operating in the United States. Think of it as the aviation equivalent of a license plate. N-Numbers consist of a series of alphanumeric characters. U.S. registration numbers may not exceed five characters in addition to the standard U.S. registration prefix letter N. These characters may be:\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cul style=\"block-size: 61.3125px; 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: 451.5px 30.6562px; transform-origin: 451.5px 30.6562px; 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: 423.5px 10.2188px; text-align: left; transform-origin: 423.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=\"\"\u003eOne to five numbers (e.g. N12345)\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: 423.5px 10.2188px; text-align: left; transform-origin: 423.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=\"\"\u003eOne to four numbers followed by one letter (e.g. N1234Z)\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: 423.5px 10.2188px; text-align: left; transform-origin: 423.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=\"\"\u003eOne to three numbers followed by two letters (e.g. N123AZ)\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; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 444.5px 10.5px; text-align: left; transform-origin: 444.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=\"\"\u003eIn addition there are the following restrictions:\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003col style=\"block-size: 40.875px; font-family: Helvetica, Arial, sans-serif; list-style-type: decimal; margin-block-end: 20px; margin-block-start: 10px; margin-bottom: 20px; margin-top: 10px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 451.5px 20.4375px; transform-origin: 451.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: 423.5px 10.2188px; text-align: left; transform-origin: 423.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=\"\"\u003eThe first character must be a number 1 through 9 (e.g. N012C is invalid)\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: 423.5px 10.2188px; text-align: left; transform-origin: 423.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=\"\"\u003eThe number cannot contain the letters 'O' or 'I' to avoid confusion with numbers '0' and '1' (e.g. N45O is invalid)\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003c/ol\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: 444.5px 10.5px; text-align: left; transform-origin: 444.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=\"\"\u003eGiven an N-number, return true if it is valid and false if it is not.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e","function_template":"function TF = IsValid(N_number)\r\n    TF=true;\r\nend","test_suite":"%% Test Case 1\r\nN_number='N1';\r\nTF = IsValid(N_number)\r\nassert(TF)\r\n\r\n%% Test Case 2\r\nN_number='N299OV';\r\nTF = IsValid(N_number)\r\nassert(~TF)\r\n\r\n%% Test Case 3\r\nN_number='N12345';\r\nTF = IsValid(N_number)\r\nassert(TF)\r\n\r\n%% Test Case 4\r\nN_number='N7TT';\r\nTF = IsValid(N_number)\r\nassert(TF)\r\n\r\n%% Test Case 5\r\nN_number='N9CLP';\r\nTF = IsValid(N_number)\r\nassert(~TF)\r\n\r\n%% Test Case 6\r\nN_number='N8W';\r\nTF = IsValid(N_number)\r\nassert(TF)\r\n\r\n%% Test Case 7\r\nN_number='N491652';\r\nTF = IsValid(N_number)\r\nassert(~TF)\r\n\r\n%% Test Case 8\r\nN_number='NN65UK';\r\nTF = IsValid(N_number)\r\nassert(~TF)\r\n\r\n%% Test Case 9\r\nN_number='N453RD';\r\nTF = IsValid(N_number)\r\nassert(TF)\r\n\r\n%% Test Case 10\r\nN_number='N765G9';\r\nTF = IsValid(N_number)\r\nassert(~TF)\r\n\r\n%% Test Case 11\r\nN_number='NY';\r\nTF = IsValid(N_number)\r\nassert(~TF)\r\n\r\n%% Test Case 12\r\nN_number='N56BY';\r\nTF = IsValid(N_number)\r\nassert(TF)\r\n\r\n%% Test Case 13\r\nN_number='N55A';\r\nTF = IsValid(N_number)\r\nassert(TF)\r\n\r\n%% Test Case 14\r\nN_number='N66';\r\nTF = IsValid(N_number)\r\nassert(TF)\r\n\r\n%% Test Case 15\r\nN_number='3409R';\r\nTF = IsValid(N_number)\r\nassert(~TF)\r\n\r\n%% Test Case 16\r\nN_number='N45I';\r\nTF = IsValid(N_number)\r\nassert(~TF)\r\n\r\n%% Test Case 17\r\nN_number='NC2013';\r\nTF = IsValid(N_number)\r\nassert(~TF)\r\n\r\n%% Test Case 18\r\nN_number='N05D';\r\nTF = IsValid(N_number)\r\nassert(~TF)\r\n\r\n%% Test Case 19\r\nN_number='N113P';\r\nTF = IsValid(N_number)\r\nassert(TF)\r\n\r\n%% Test Case 20\r\nN_number='N-3452';\r\nTF = IsValid(N_number)\r\nassert(~TF)\r\n\r\n%% Test Case 21\r\nN_number='N9999M';\r\nTF = IsValid(N_number)\r\nassert(TF)\r\n\r\n%% Test Case 22\r\nN_number='N 2338';\r\nTF = IsValid(N_number)\r\nassert(~TF)\r\n\r\n%% Test Case 23\r\nN_number='N88j';\r\nTF = IsValid(N_number)\r\nassert(~TF)\r\n\r\n%% Test Case 24\r\nN_number='N9224';\r\nTF = IsValid(N_number)\r\nassert(TF)\r\n\r\n%% Test Case 25\r\nN_number='N909';\r\nTF = IsValid(N_number)\r\nassert(TF)\r\n","published":true,"deleted":false,"likes_count":1,"comments_count":0,"created_by":4910069,"edited_by":4910069,"edited_at":"2026-09-10T17:56:22.000Z","deleted_by":null,"deleted_at":null,"solvers_count":1,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2026-09-10T15:21:58.000Z","updated_at":"2026-09-10T22:56:17.000Z","published_at":"2026-09-10T17:56:23.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\u003eAn N-number is a unique registration assigned by the Federal Aviation Administration (FAA) to every civil aircraft operating in the United States. Think of it as the aviation equivalent of a license plate. N-Numbers consist of a series of alphanumeric characters. U.S. registration numbers may not exceed five characters in addition to the standard U.S. registration prefix letter N. These characters may be:\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\u003eOne to five numbers (e.g. N12345)\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\u003eOne to four numbers followed by one letter (e.g. N1234Z)\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\u003eOne to three numbers followed by two letters (e.g. N123AZ)\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\u003eIn addition there are the following restrictions:\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=\\\"2\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe first character must be a number 1 through 9 (e.g. N012C is invalid)\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=\\\"2\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe number cannot contain the letters 'O' or 'I' to avoid confusion with numbers '0' and '1' (e.g. N45O is invalid)\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 N-number, return true if it is valid and false if it is not.\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\"}]}"}],"errors":[],"facets":[[{"value":"Linear Algebra","count":1,"selected":false},{"value":"Paper-\u0026-pencil Games","count":1,"selected":false}],[{"value":"medium","count":3,"selected":false}]],"term":"tag:\"check\"","page":1,"per_page":50,"sort":"map(difficulty_value,0,0,999) asc"}}