皇后问题 问题

时间:2013-02-04 07:10:21
【文件属性】:

文件名称:皇后问题 问题

文件大小:229KB

文件格式:ZIP

更新时间:2013-02-04 07:10:21

皇后问题 问题

皇后问题 问题描述: 在一个在n×n的棋盘上放n个皇后,要求任意两个皇后都不在棋盘的同一行、列和对角线上(即按国际象棋规则,使得皇后间互不攻击),试给出一个递归算法求出n个皇后全部的放置方法。 算法设计: 给定n×n的棋盘(假定n=4),用递归算法求出n个皇后全部的放置方法。每个皇后的位置用(k, x(k))表示,k表示行号,x(k)表示列号。为方便起见,输出结果的行号和列号都从1开始。 算法提示: 用(x,y)的形式表示棋盘上的每一格,x表示行,y表示列。首先在棋盘的第一行第一列放置第一个皇后,然后在棋盘的第二行中的每一列开始试探放第二个皇后,判断第二个皇后处于某一列时,是否与前面放置好的皇后存在互相攻击的情况,若不存在,那么依照相同的方法开始在下一行递归进行下一个皇后放置;若存在,那么接着试探下一列,直到这一行的全部列被试探完为止。 数据输入: 无。 结果输出: 将计算出的n个皇后的全部放置方法分行输出到文件output.txt 中。每种方法的输出形式是x(1) x(2) x(3) x(4),即从上至下输出每个皇后的列号,最后一行输出总的放置方法数目。


【文件预览】:
皇后问题
----main.cpp(400B)
----j.plg(1KB)
----input.txt(1B)
----empress.ncb(41KB)
----j.dsw(510B)
----queen.h(164B)
----j.dsp(4KB)
----j.opt(48KB)
----output.txt(16KB)
----Debug()
--------j.exe(188KB)
--------vc60.pdb(52KB)
--------empress.obj(4KB)
--------j.pdb(465KB)
--------vc60.idb(41KB)
--------j.ilk(190KB)
--------main.obj(4KB)
--------queen.obj(4KB)
--------j.pch(215KB)
----queen.cpp(556B)
----empress.opt(48KB)
----j.ncb(41KB)

网友评论

  • 很好的算法