搜索
写经验 领红包
 > 科技

八皇后算法思路(解决八皇后问题的经典算法是什么)

导语:学习算法绕不开的~~八皇后

大家好,我是老郝。本文就古老的八皇后问题,将递归回溯的思想介绍给大家。

国际象棋中的皇后比中国象棋里的车(JÜ)厉害得多,皇后能横向,纵向和斜向移动,在这三条线上的其他棋子都可以被吃掉。

所谓八皇后问题就是:将八位皇后放在一张8x8的棋盘上,使得每位皇后都无法吃掉别的皇后,(即任意两个皇后都不在同一条横线,竖线和斜线上)

绿格子是一个皇后的势力范围

怎么才能将八个皇后放进棋盘中呢?最简单的方法是一个一个试。

先放第一个,在第一个的势力范围之外放第二个,在第一、二个的势力范围外放第三个……要是不能再放的时候就将上一个皇后的位置挪动一下再放下一个,如此循环下去总可以放下8个皇后。

主算法中的check函数主要是检测放置皇后的时候是否和之前放置的皇后有冲突。

下图中的算法较为清晰地展现了,横向、纵向、斜向的判断(不是最简化算法,但是是最清晰的解法)。

免责声明:本站部份内容由优秀作者和原创用户编辑投稿,本站仅提供存储服务,不拥有所有权,不承担法律责任。若涉嫌侵权/违法的,请与我联系,一经查实立刻删除内容。本文内容由快快网络小婷创作整理编辑!