{"group":{"id":1,"name":"Community","lockable":false,"created_at":"2012-01-18T18:02:15.000Z","updated_at":"2026-04-16T00:12:35.000Z","description":"Problems submitted by members of the MATLAB Central community.","is_default":true,"created_by":161519,"badge_id":null,"featured":false,"trending":false,"solution_count_in_trending_period":0,"trending_last_calculated":"2026-04-16T00:00:00.000Z","image_id":null,"published":true,"community_created":false,"status_id":2,"is_default_group_for_player":false,"deleted_by":null,"deleted_at":null,"restored_by":null,"restored_at":null,"description_opc":null,"description_html":null,"published_at":null},"problems":[{"id":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":22,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2015-02-25T02:55:09.000Z","updated_at":"2025-12-31T18:50:57.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":138,"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-04-17T14:25:31.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\"}]}"}],"problem_search":{"errors":[],"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":22,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2015-02-25T02:55:09.000Z","updated_at":"2025-12-31T18:50:57.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":138,"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-04-17T14:25:31.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\"}]}"}],"term":"tag:\"check\"","current_player_id":null,"fields":[{"name":"page","type":"integer","callback":null,"default":1,"directive":null,"facet":null,"facet_method":"and","operator":null,"param":null,"static":null,"prepend":true},{"name":"per_page","type":"integer","callback":null,"default":50,"directive":null,"facet":null,"facet_method":"and","operator":null,"param":null,"static":null,"prepend":true},{"name":"sort","type":"string","callback":null,"default":null,"directive":null,"facet":null,"facet_method":"and","operator":null,"param":null,"static":null,"prepend":true},{"name":"body","type":"text","callback":null,"default":"*:*","directive":null,"facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":false},{"name":"group","type":"string","callback":null,"default":null,"directive":"group","facet":true,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"difficulty_rating_bin","type":"string","callback":null,"default":null,"directive":"difficulty_rating_bin","facet":true,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"id","type":"integer","callback":null,"default":null,"directive":"id","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"tag","type":"string","callback":null,"default":null,"directive":"tag","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"product","type":"string","callback":null,"default":null,"directive":"product","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"created_at","type":"timeframe","callback":{},"default":null,"directive":"created_at","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"profile_id","type":"integer","callback":null,"default":null,"directive":"author_id","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"created_by","type":"string","callback":null,"default":null,"directive":"author","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"player_id","type":"integer","callback":null,"default":null,"directive":"solver_id","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"player","type":"string","callback":null,"default":null,"directive":"solver","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"solvers_count","type":"integer","callback":null,"default":null,"directive":"solvers_count","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"comments_count","type":"integer","callback":null,"default":null,"directive":"comments_count","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"likes_count","type":"integer","callback":null,"default":null,"directive":"likes_count","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"leader_id","type":"integer","callback":null,"default":null,"directive":"leader_id","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"leading_solution","type":"integer","callback":null,"default":null,"directive":"leading_solution","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true}],"filters":[{"name":"asset_type","type":"string","callback":null,"default":null,"directive":null,"facet":null,"facet_method":"and","operator":null,"param":null,"static":"\"cody:problem\"","prepend":true},{"name":"profile_id","type":"integer","callback":{},"default":null,"directive":null,"facet":null,"facet_method":"and","operator":null,"param":"author_id","static":null,"prepend":true}],"query":{"params":{"per_page":50,"term":"tag:\"check\"","current_player":null,"sort":"map(difficulty_value,0,0,999) asc"},"parser":"MathWorks::Search::Solr::QueryParser","directives":{"term":{"directives":{"tag":[["tag:\"check\"","","\"","check","\""]]}}},"facets":{"#\u003cMathWorks::Search::Field:0x00007f4747c1dca8\u003e":null,"#\u003cMathWorks::Search::Field:0x00007f4747c1dc08\u003e":null},"filters":{"#\u003cMathWorks::Search::Field:0x00007f4747c1d0c8\u003e":"\"cody:problem\""},"fields":{"#\u003cMathWorks::Search::Field:0x00007f4747c1e1a8\u003e":1,"#\u003cMathWorks::Search::Field:0x00007f4747c1e108\u003e":50,"#\u003cMathWorks::Search::Field:0x00007f4747c1e068\u003e":"map(difficulty_value,0,0,999) asc","#\u003cMathWorks::Search::Field:0x00007f4747c1dfc8\u003e":"tag:\"check\""},"user_query":{"#\u003cMathWorks::Search::Field:0x00007f4747c1dfc8\u003e":"tag:\"check\""},"queried_facets":{}},"query_backend":{"connection":{"configuration":{"index_url":"http://index-op-v2/solr/","query_url":"http://search-op-v2/solr/","direct_access_index_urls":["http://index-op-v2/solr/"],"direct_access_query_urls":["http://search-op-v2/solr/"],"timeout":10,"vhost":"search","exchange":"search.topic","heartbeat":30,"pre_index_mode":false,"host":"rabbitmq-eks","port":5672,"username":"cody-search","password":"78X075ddcV44","virtual_host":"search","indexer":"amqp","http_logging":"true","core":"cody"},"query_connection":{"uri":"http://search-op-v2/solr/cody/","proxy":null,"connection":{"parallel_manager":null,"headers":{"User-Agent":"Faraday v1.0.1"},"params":{},"options":{"params_encoder":"Faraday::FlatParamsEncoder","proxy":null,"bind":null,"timeout":null,"open_timeout":null,"read_timeout":null,"write_timeout":null,"boundary":null,"oauth":null,"context":null,"on_data":null},"ssl":{"verify":true,"ca_file":null,"ca_path":null,"verify_mode":null,"cert_store":null,"client_cert":null,"client_key":null,"certificate":null,"private_key":null,"verify_depth":null,"version":null,"min_version":null,"max_version":null},"default_parallel_manager":null,"builder":{"adapter":{"name":"Faraday::Adapter::NetHttp","args":[],"block":null},"handlers":[{"name":"Faraday::Response::RaiseError","args":[],"block":null}],"app":{"app":{"ssl_cert_store":{"verify_callback":null,"error":null,"error_string":null,"chain":null,"time":null},"app":{},"connection_options":{},"config_block":null}}},"url_prefix":"http://search-op-v2/solr/cody/","manual_proxy":false,"proxy":null},"update_format":"RSolr::JSON::Generator","update_path":"update","options":{"url":"http://search-op-v2/solr/cody"}}},"query":{"params":{"per_page":50,"term":"tag:\"check\"","current_player":null,"sort":"map(difficulty_value,0,0,999) asc"},"parser":"MathWorks::Search::Solr::QueryParser","directives":{"term":{"directives":{"tag":[["tag:\"check\"","","\"","check","\""]]}}},"facets":{"#\u003cMathWorks::Search::Field:0x00007f4747c1dca8\u003e":null,"#\u003cMathWorks::Search::Field:0x00007f4747c1dc08\u003e":null},"filters":{"#\u003cMathWorks::Search::Field:0x00007f4747c1d0c8\u003e":"\"cody:problem\""},"fields":{"#\u003cMathWorks::Search::Field:0x00007f4747c1e1a8\u003e":1,"#\u003cMathWorks::Search::Field:0x00007f4747c1e108\u003e":50,"#\u003cMathWorks::Search::Field:0x00007f4747c1e068\u003e":"map(difficulty_value,0,0,999) asc","#\u003cMathWorks::Search::Field:0x00007f4747c1dfc8\u003e":"tag:\"check\""},"user_query":{"#\u003cMathWorks::Search::Field:0x00007f4747c1dfc8\u003e":"tag:\"check\""},"queried_facets":{}},"options":{"fields":["id","difficulty_rating"]},"join":" "},"results":[{"id":3042,"difficulty_rating":"easy-medium"},{"id":44509,"difficulty_rating":"medium"}]}}