国际象棋“皇后”问题的回溯算法[C#源码分析]
发布日期:2021-05-07 10:36:16 浏览次数:16 分类:原创文章

本文共 341 字,大约阅读时间需要 1 分钟。

 

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

待续...... 


上一篇:常用正则表达式
下一篇:VS2005图标默认存放位置

发表评论

最新留言

关注你微信了!
[***.104.42.241]2025年03月23日 03时38分08秒