八皇后问题.pptx
《八皇后问题.pptx》由会员分享,可在线阅读,更多相关《八皇后问题.pptx(10页珍藏版)》请在冰点文库上搜索。
八皇后问题,Eightqueens,韩奇刘源奇鹿尧,GroupMembers,八皇后问题,是一个古老而著名的问题,是回溯算法的典型案例。
该问题是国际西洋棋棋手马克斯贝瑟尔于1848年提出:
在8X8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。
高斯认为有76种方案。
1854年在柏林的象棋杂志上不同的作者发表了40种不同的解,后来有人用图论的方法解出92种结果。
计算机发明后,有多种计算机语言可以解决此问题。
百度百科,八皇后问题的一个解,递归法VS非递归法,递递递递递递归法,voidtrial(inti)/进入本函数时,在NN的棋盘前i-1行已放置了i-1个互不攻击的棋子。
/现从第i行起继续为后续棋子选择合适位置。
/当i=N时,求得一个合法布局,输出之。
intj;if(i=N)show();elsefor(j=0;jN;j+)ai=j;if(check(i)trial(i+1);ai=0;/移走棋子,非递归法,voidtrial(inti)/进入本函数时,在NN的棋盘前i-1行已放置了i-1个互不攻击的棋子。
/现从第i行起继续为后续棋子选择合适位置。
/当i=N时,求得一个合法布局,输出之。
intj;if(i=N)show();elsefor(j=0;jN;j+)ai=j;if(check(i)trial(i+1);ai=0;/移走棋子,以上,