欢迎来到天天文库
浏览记录
ID:57694496
大小:14.50 KB
页数:2页
时间:2020-09-01
《皇后问题matlab算法.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、M文件functionPlaceQueen(row,matrix,N)%回溯法放置皇后ifrow>NPrintQueen(N,matrix);%打印棋盘elseforcol=1:Nmatrix(row,col)=1;ifrow==1
2、
3、Conflict(row,col,N,matrix)%检测是否冲突PlaceQueen(row+1,matrix,N);endmatrix(row,col)=0;endend%子函数:检测冲突functionresult=Conflict(row,col,N,matrix)%检测是否冲突re
4、sult=1;fori=1:row-1forj=1:Nifmatrix(i,j)==1if((j==col)
5、
6、(abs(row-i)==abs(col-j)))%是否产生冲突:在同一直线,斜线上result=0;break;endendendifresult==0break;endend%子函数:打印棋盘信息functionPrintQueen(N,matrix)globalsolutionNum;%定义全局变量,来累积方法数solutionNum=solutionNum+1;disp(['第',num2str(solu
7、tionNum),'种方法:'])disp(matrix)脚本文件clearallclcglobalsolutionNum;solutionNum=0;%全局变量记录方法数N=8;%皇后个数matrix=zeros(N);%存储皇后位置信息PlaceQueen(1,matrix,N)%调用放置方法
此文档下载收益归作者所有