八皇后问题,我觉得我是不是误解了什么

冷风吹得鸡鸡凉丶 2018-03-22 03:43:24
看回溯算法的时候看见了这个八皇后问题,然后研究了许久,查了很多答案都是为92,但是我怎么都觉得不对,哪个大佬来帮我纠正一下思路。
以下是我的思路:
八皇后用的棋盘是8*8的棋盘,我将列数用数字表示,将行数用数位表示,例如:第一个皇后在(1,1)的位置第二个皇后在(2,2)的位置第三个。。。。以此类推第八个皇后在(8,8)的位置我用12345678这样的数列来表示,那么下面我就疑惑了,这样子不就成了12345678的一个排列个数问题了吗,答案不应该是8*7*6*5*4*3*2*1了吗?
我用3*3与4*4的棋盘做了测试数字确实是排列个数,那么大佬们我到底是哪里理解错了?
...全文
88 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
shoppo0505 2018-03-22
  • 打赏
  • 举报
回复
引用 楼主 is_my_self 的回复:
看回溯算法的时候看见了这个八皇后问题,然后研究了许久,查了很多答案都是为92,但是我怎么都觉得不对,哪个大佬来帮我纠正一下思路。 以下是我的思路: 八皇后用的棋盘是8*8的棋盘,我将列数用数字表示,将行数用数位表示,例如:第一个皇后在(1,1)的位置第二个皇后在(2,2)的位置第三个。。。。以此类推第八个皇后在(8,8)的位置我用12345678这样的数列来表示,那么下面我就疑惑了,这样子不就成了12345678的一个排列个数问题了吗,答案不应该是8*7*6*5*4*3*2*1了吗? 我用3*3与4*4的棋盘做了测试数字确实是排列个数,那么大佬们我到底是哪里理解错了?
皇后的活动范围是横竖斜。 你阶乘的计算方法,没有考虑斜线。 就举最简单的例子: 如果是2x2的格子,你能放几个皇后不打架?按照你的算法,就是2x1 = 2,但是实际上只能放1个,第二个无论放哪里,都会打架。
cheng2005 2018-03-22
  • 打赏
  • 举报
回复
皇后之间不能互相攻击,究竟有没有好好读题目?
  • 打赏
  • 举报
回复
引用 1 楼 wddw1986 的回复:
皇后之间不能互相攻击,究竟有没有好好读题目?
后面回去审题发现。。。原来斜线也不行。。。 被自己蠢哭了
  • 打赏
  • 举报
回复
果然是我审题问题

110,502

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧