n وزیر در متلب

کد متلب برای حل مسئله ی n وزیر با استفاده از روش بکترکینک…

function R = MainNQueen(n)
%MainNQueen Compute NQueen with backtracking algorithm
% n is number of queens
% example: n = 8;
global COL ; % vector of queens column of queens
COL = zeros(n, 1);
Queens(0, n);
R = COL;
end
function returnValue = Queens(index , n)
global COL
if promising(index) == 1
if index == n
returnValue = COL;
else
for j=1:n
COL(index+1) = j;
Queens(index + 1, n)
end
end
end
end

function returnValue = promising(i)
global COL
swich = 1;
k = 1;
while (k < i) && (swich == 1)
if (COL(i) == COL(k)) || (abs(COL(i) - COL(k)) == i - k)
swich = 0;
end
k = k + 1;
end
returnValue = swich;
end


mفایل مربوطه رو هم از اینجا دانلود کنید.