C语言算法一角架构算法设计模式和编程理论生物信息学与算法

媳妇多就用分支修剪,解决婆娘纷争,C语言经典算法之八皇后问题

2019-03-28  本文已影响2人  C语言基础

八皇后问题

行文不易,新手上路,多多关注,这真的对我很重要,私信更有惊喜

西洋棋中的皇后可以直线前进,吃掉遇到的所有棋子,如果棋盘上有八个皇后,则这八个皇后如何相安无事的放置在棋盘上,1970年与1971年, E.W.Dijkstra与N.Wirth曾经用这个问题来讲解程式设计之技巧。

分支修剪解法

关于棋盘的问题,都可以用递回求解,然而如何减少递回的次数?在八个皇后的问题中,不必要所有的格子都检查过,例如若某列检查过,该该列的其它格子就不用再检查了,这个方法称为分支修剪。

相关源码

行文不易,新手上路,多多关注,这真的对我很重要,私信更有惊喜

运行结果部分实例

No 1

Q . . . . . . .

. . . . Q . . .

. . . . . . . Q

. . . . . Q . .

. . Q . . . . .

. . . . . . Q .

. Q . . . . . .

. . . Q . . . .

上一篇下一篇

猜你喜欢

热点阅读