请教 用matlab编写 八皇后问题(或者n皇后问题)
我的代码,好像很有问题
请高手看一下
很着急,马上就要交差了
请赐教,不胜感激
还要编成c语言的
先完成matlab再说
function F=queen(H,n)
%queen 皇后算法得到信息位
%H 小方块
H=zeros(n)
i=1
T=H
while (i>=1&i<=n)
z=judgezero(T,i)
if z==0
i=i-1
H(i-1,chess(i))=-1
T=H
else
for j=1:n
if H(i,j)==0
H(i,j)=1
break
end
end
chess(i)=j
T=false(H,i,j)
i=i+1
end
end
function z=judgezero(H,i)
[m,n]=size(H)
z=0
for j=1:n
if H(i,j)==0
z=z+1
end
end
function T=false(H,i,j)
[m,n]=size(H)
for k=i+1:n
a=j
b=mod(j-k+i+n,n)
if b==0
b=n
end
c=mod(j+k-i+n,n)
if c==0
c=n
end
H(k,a)=-1
H(k,b)=-1
H(k,c)=-1
T=H
end