社区
Delphi
帖子详情
N皇后问题 16皇后的解数
ggyy2002
2003-12-25 12:02:30
我在做N皇后问题
想验证一下16皇后的解的数量是否为:1477251
...全文
473
5
打赏
收藏
N皇后问题 16皇后的解数
我在做N皇后问题 想验证一下16皇后的解的数量是否为:1477251
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
ggyy2002
2003-12-29
打赏
举报
回复
up
ggyy2002
2003-12-26
打赏
举报
回复
up
ggyy2002
2003-12-25
打赏
举报
回复
解的个数
liaoqingpeng
2003-12-25
打赏
举报
回复
N皇后问题 16皇后的解数 ?
ggyy2002
2003-12-25
打赏
举报
回复
是否为:1477251
递归——
N
皇后
问题
/* N
皇后
问题
N
皇后
问题
是指在N*N的棋盘上要摆N个
皇后
要求任何两个
皇后
不同行,不同列,也不在同一条斜线上 给定一个整数n,返回n
皇后
的摆法有多少种 n = 1,返回1 n = 2或3,2
皇后
和3
皇后
问题无论怎么摆放都不行,返回0 n = 8返回92 */ /* [ 1 ] 1*1 能 或 不能(讨论两个
皇后
的问题) 2
皇后
无解 0 [ ] [ ] [ ] [ ] 3
皇后
无解 0 [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ]
n
皇后
问题
的三种解法
N
皇后
问题
是一个经典的问题,在一个N*N的棋盘上放置N个
皇后
,每行一个并使其不能互相攻击(同一行、同一列、同一斜线上的
皇后
都会自动攻击)。
n
皇后
问题
不算是陈词滥调,也是老生常谈了,作为回溯的经典案例,有递归和非递归两种实现方式,同时,除了回溯算法,最近我在网上查了下看到还可以用位运算来解决这个问题。本次趁着本学期算法课程的期末要求,我将对两种算法的实验效果进行分析。 1、使用回溯解决n
皇后
问
N
皇后
问题
与
解数
独问题
n
皇后
是由八
皇后
问题演变而来的。该问题是国际西洋棋棋手马克斯·贝瑟尔于1848年提出:在8×8格的国际象棋上摆放八个
皇后
,使其不能互相攻击,即任意两个
皇后
都不能处于同一行、同一列或同一斜线上,问有多少种摆法。高斯认为有76种方案。1854年在柏林的象棋杂志上不同的作者发表了40种不同的解,后来有人用图论的方法解出92种结果。
N
皇后
问题
解法及解的个数
1、将第一个
皇后
放置在第一行的第一个空格里 2、对于第二行,从第一个空格开始寻找不与第一行的
皇后
冲突的空格。找到的第一个不冲突的空格是第2个。 3、对于第三行,这时已经找不到与之前放置的两个
皇后
不冲突的空格了。把当前行恢复初始状态,返回到上一行。 4、在当前行
皇后
所占的空格之后寻找一个不与之前
皇后
冲突的位置。有两种情况,如果找打了则把当前行的
皇后
移动到该位置,然后处理下一行。如果直到最后当前行的最后一个空格也没有找合适的位置,则把当前行恢复初始状态,继续回溯到上一行。 5、把最后一个
皇后
成功安置在最
N
皇后
问题
及答案解
题目 在一张N∗N的国际象棋棋盘上,放置N个
皇后
,使得所有
皇后
都无法互相直接攻击得到,(
皇后
可以直接攻击到她所在的横行,竖列,斜方向上的棋子),现在输入一个整数N,表示在N∗N的棋盘上放N个
皇后
,请输出共有多少种使得所有
皇后
都无法互相直接攻击得到的方案数。 例如下面这样的摆法,是4
皇后
的一个解 (1代表有
皇后
,0代表没有) 0 1 0 0 0 0 0 1 1 0 0 0 0 0 1 0 输入 一个整数N,代表
皇后
的个数 输出 输出方案数 样例输入 样例输入1 4 样例输入2 8 样例输出 样例输出1 2 样
Delphi
5,930
社区成员
262,943
社区内容
发帖
与我相关
我的任务
Delphi
Delphi 开发及应用
复制链接
扫一扫
分享
社区描述
Delphi 开发及应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章