`

国际象棋“皇后”问题的回溯算法[C#源码分析]

阅读更多

问题描述:
在一个n*n的棋盘上放置n个不能互相捕捉的国际象棋“皇后”,
并输出所有合理的布局情况.(在国际象棋中,皇后可以沿着纵、横
及两条斜线共4个方向捕捉对手,可见,合适的解是在每行、每列及
在一条斜线上只能有一个皇后<皇后相互捕捉>)
编程思想:
算法描述:
{
输入棋盘大小值n;
m=0;//从空配置开始
notcatch=1;//空配置中皇后不能相互捕捉
do
{
if(notcatch)
{
if(m==n)
{
输出解;
调整(形成下一个候选解);
}
else
扩展当前候选解至下一列;//向前试探
}
else
调整(形成下一个候选解);//向后回溯
notcatch=检查当前候选解的合理性
}while(m!=0)
}
*/

待续......


分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics