Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

Solution 39031

Submitted on 13 Feb 2012 by Alfonso Nieto-Castanon

Correct

26Size
Leading solution size is 24.
This solution is locked. To view this solution, you need to provide a solution of the same size or smaller.

Test Suite

Test
Code Input and Output
1
Pass
 
%% Eight Queens Solution Checker Test Suite

                    
2
Pass
 
%%
% Unique solution #6 from
% http://en.wikipedia.org/wiki/Eight_queens_puzzle
in1 = [ ...
    0 0 0 0 1 0 0 0
    0 0 1 0 0 0 0 0
    0 0 0 0 0 0 0 1
    0 0 0 1 0 0 0 0
    0 0 0 0 0 0 1 0
    1 0 0 0 0 0 0 0
    0 0 0 0 0 1 0 0
    0 1 0 0 0 0 0 0 ];
out1 = isEightQueensSolution(in1);
assert(islogical(out1));
assert(isequal(out1, 1));

                    
3
Pass
 
%%
% Unique solution #7
in2 = [ ...
    0 0 0 0 1 0 0 0
    0 0 0 0 0 0 1 0
    0 0 0 1 0 0 0 0
    1 0 0 0 0 0 0 0
    0 0 1 0 0 0 0 0
    0 0 0 0 0 0 0 1
    0 0 0 0 0 1 0 0
    0 1 0 0 0 0 0 0 ];
out2 = isEightQueensSolution(in2);
assert(isequal(out2, 1));

                    
4
Pass
 
%%
% Unique solution #10
in3 = [ ...
    0 0 0 0 0 1 0 0
    0 1 0 0 0 0 0 0
    0 0 0 0 0 0 1 0
    1 0 0 0 0 0 0 0
    0 0 0 1 0 0 0 0
    0 0 0 0 0 0 0 1
    0 0 0 0 1 0 0 0
    0 0 1 0 0 0 0 0 ];
out3 = isEightQueensSolution(in3);
assert(isequal(out3, 1));

                    
5
Pass
 
%%
% Unique solution #11
in4 = [ ...
    0 0 0 1 0 0 0 0
    0 0 0 0 0 0 1 0
    1 0 0 0 0 0 0 0
    0 0 0 0 0 0 0 1
    0 0 0 0 1 0 0 0
    0 1 0 0 0 0 0 0
    0 0 0 0 0 1 0 0
    0 0 1 0 0 0 0 0 ];
out4 = isEightQueensSolution(in4);
assert(isequal(out4, 1));

                    
6
Pass
 
%%
in5 = [ ...
    0 0 0 0 1 0 0 0
    0 0 1 0 0 0 0 0
    0 0 0 1 0 0 0 0
    0 0 0 0 0 0 0 1
    0 0 0 0 0 0 1 0
    1 0 0 0 0 0 0 0
    0 0 0 0 0 1 0 0
    0 1 0 0 0 0 0 0 ];
out5 = isEightQueensSolution(in5);
assert(isequal(out5, 0));

                    
7
Pass
 
%%
in6 = [ ...
    0 0 1 0 0 0 0 0
    0 0 0 0 0 0 1 0
    0 0 0 1 0 0 0 0
    1 0 0 0 0 0 0 0
    0 0 1 0 0 0 0 0
    0 0 0 0 0 0 0 1
    0 0 0 0 0 1 0 0
    0 1 0 0 0 0 0 0 ];
out6 = isEightQueensSolution(in6);
assert(isequal(out6, 0));

                    
8
Pass
 
%%
in7 = [ ...
    0 0 0 0 0 1 0 0
    0 1 0 0 0 0 0 0
    0 0 0 0 0 0 1 0
    1 0 0 0 0 0 0 0
    0 0 0 1 0 0 0 0
    0 0 0 0 0 0 0 1
    0 0 1 0 0 0 0 0
    0 0 0 0 1 0 0 0 ];
out7 = isEightQueensSolution(in7);
assert(isequal(out7, 0));

                    
9
Pass
 
%%
in8 = [ ...
    0 0 0 1 0 0 0 0
    0 0 0 0 0 0 1 0
    1 0 0 0 0 0 0 0
    0 0 0 0 1 0 0 1
    0 0 0 0 0 0 0 0
    0 1 0 0 0 0 0 0
    0 0 0 0 0 1 0 0
    0 0 1 0 0 0 0 0 ];
out8 = isEightQueensSolution(in8);
assert(isequal(out8, 0));

                    
10
Pass
 
%%
% Only 7 queens
in9 = [ ...
    0 0 0 0 1 0 0 0
    0 0 1 0 0 0 0 0
    0 0 0 0 0 0 0 1
    0 0 0 1 0 0 0 0
    0 0 0 0 0 0 0 0
    1 0 0 0 0 0 0 0
    0 0 0 0 0 1 0 0
    0 1 0 0 0 0 0 0 ];
out9 = isEightQueensSolution(in9);
assert(isequal(out9, 0));

                    
11
Pass
 
%%
% Row and column constraint satisfied but
% not diagonal constraint.
in10 = eye(8);
out10 = isEightQueensSolution(in10);
assert(isequal(out10, 0));