在国际象棋中,皇后的威力最猛,可以攻击跟它同一行、同一列或同一斜线的任意棋子。问题如下:在一个8*8的棋盘下,如何摆放8个皇后才能避免它们互相攻击呢?

  一种策略是穷举猜测方法,但在64个方格中可能出现的情况有C(64,8)= 4426165368种!但是我们可以通过简单的观察,在排除同行同列的情况之下,其实就只有A(8,8)= 40320种,这样,这种方法就有了更大的可行性。假设从第一列的第一个方格开始,为每一列放置一个皇后,如果其中某一列在任何一个格子里都会被其他皇后攻击的话,我们要进行回溯,从该列的上一列重新尝试,依此类推:

Code

 

posted on 2009-10-17 16:46  伴我闯天涯  阅读(466)  评论(0编辑  收藏  举报