谁能把小甲鱼数据机构 八皇后问题那一节的代码加上一个文件输出 顺便也写一下源代码 万分感谢

温馨提醒 如果侵犯了你的权益請通知我们,我们会及时删除侵权内容谢谢合作! 联系信箱:

八皇后问题问题是一个古老而著洺的问题是回溯算法的典型例题。该问题是十九世纪著名的数学家高斯1850年提出:在8X8格的国际象棋上摆放八个皇后使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线(对角线)上问有多少种摆法。

下面的C代码可以解决N皇后问题8皇后问题的解是92。

show(); /* 如果全部摆好则输出所有皇后的坐标 */

程序运行部分结果截图:

由于8个皇后的任意两个不能处在同一行,那么肯定是每一个皇后占据一行於是我们可以定义一个数组ColumnIndex[8],数组中第i个数字表示位于第i行的皇后的列号先把数组ColumnIndex的8个数字分别用0~7初始化,接下来就是对数组ColumnIndex做全排列因为我们是用不同的数字初始化数组,所以任意两个皇后肯定不同列我们只需要判断每一个排列对应的8个皇后是不是在同一对角线上,也就是对于数组的两个下标i和j是不是

//判断是否是合法的序列 //获得皇后问题的全排列 //可以解决N皇后问题

结果输出为:92。对于合法排列鈳以输出皇后放置的详细位置。

我要回帖

更多关于 八皇后问题 的文章

 

随机推荐