欢迎来到天天文库
浏览记录
ID:57724025
大小:15.00 KB
页数:2页
时间:2020-09-02
《八皇后问题matlab程序.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、functiony=bahuanghou();result=cell(1,8);N=100;fori=1:8result{i}={[1,i]};end;fori=1:8forj=2:8len=length(result{i});flagss=0;%看每一行运行的时候是不是第一次new_len=len;form=1:lenaa=result{i};bb=aa{m};flags=0;%看第k行是否合适fork=1:8flags=0;iflength(bb)<=j-2+eps%看找到的各行的点是否不合适了%,不合适就停止讨论contin
2、ue;elsecc=zeros(j-1,1);cc=bb(1:j-1,2);forkk=1:length(cc(:,1))iffind(cc(kk)==k)%如果发现在同一列上,跳出循环,继续下一列flags=1;break;end;ifabs(k-cc(kk))==j-kk%如果在斜对角线上,跳出,继续下一列flags=1;break;end;end;ifflagscontinue;end;if~flagssaa{m}=[bb;j,k];%如果是第一次找到那一列,就直接在其末尾增加这个点result{i}=aa;flagss=f
3、lagss+1;elsenew_len=new_len+1;%如果不是第一次找到,就要新开辟一个集合aa{new_len}=[bb;j,k];result{i}=aa;end;end;end;end;end;end;%ret=zeros(8,N);ret=zeros(8,1);%寻找我已经找到的八皇后的结果fori=1:8aa=result{i};len=length(aa);form=1:lenbb=aa{m};iflength(aa{m})==8ret=[retbb];end;end;end;%display(ret);%把八
4、皇后的结果写入txt文档中进行结果保存fid=fopen('F:ang.txt','w')fori=2:length(ret)fprintf(fid,'%d%d%d%d%d%d%d%dr',ret(:,i)');ifmod(i,2)fprintf(fid,'r');end;end;size(ret)
此文档下载收益归作者所有