八皇后问题 C++程序_第1页
八皇后问题 C++程序_第2页
八皇后问题 C++程序_第3页
八皇后问题 C++程序_第4页
八皇后问题 C++程序_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、八皇后问题八皇卮问题,是一个古老而著名的问题,是回溯算法的典型例题。该问题 是十九世纪著名的数学家高斯1850年提出:在8X8格的国际象棋上摆放八个皇 后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜 线上,问有多少种摆法。高斯认为有76种方案。1854年在柏林的象棋杂志上 不同的作者发表了 40种不同的解,后来有人用图论的方法解出92种结果。计 算机发明后,有多种方法可以解决此问题。下面本人所用的就是回溯的思想来解决八皇后问题的。8行8列的棋盘上放八个 皇后,且不相互攻击,即每一列每一行只能放一个皇后,且必须要放一个皇后。采用循环回溯的方法, 现在第一列放一个皇后,然后再

2、在第二列放一个皇后,以此类推,直到八个皇 后都放完为止。每个for循环语句都有一条continue语句,用来继续跳出本次 循环。/ Queen.cpp(main)#include using std:cout;using std:endl;#include using std:setw;#include / using std:abs;int main()static int queen9;static int count=1;for (int A=1;A=8;A+)for (int B=1;B=8;B+)if (B=A)continue;queen2=B;if (abs(B-A)=1)con

3、tinue;queen1=A;for (int C=1;C=8;C+)if (C=B) | (C=A)continue;if (abs(C-B)=1)|(abs(C-A)=2)continue;queen3=C;for (int D=1;D=8;D+)if (D=C)|(D=B)|(D=A)continue;if (abs(D-C)=1)|(abs(D-B)=2)|(abs(D-A)=3)continue;queen4=D;for (int E=1;E=8;E+)if (E=D)|(E=C)|(E=B)|(E=A)continue;if(abs(E-D)=1)|(abs(E-C)=2)|(ab

4、s(E-B)=3)|(abs(E-A)=4)continue;queen5=E;for (int F=1;F=8;F+)if (F=E)|(F=D)|(F=C)|(F=B)|(F=A)continue;if(abs(F-E)=1)|(abs(F-D)=2)|(abs(F-C)=3)|(abs(F-B)=4)|(abs(F-=5)continue;queen6=F;for (int G=1;G=8;G+)if(g=f)|(g=e)|(g=d)|(g=c)|(g=b)|(g=a)continue;if(abs(G-F)=1)|(abs(G-E)=2)|(abs(G-D)=3)|(abs(G-C)=

5、4)|(abs(G-=5)|(abs(G-A)=6)continue;queen7=G;for (int I=1;I=8;I+)if(I=G)|(I=F)|(I=E)|(I=D)|(I=C)|(I=B)|(I=A)continue;if(abs(I-G)=1)|(abs(I-F)=2)|(abs(I-E)=3)|(abs(I-D)=4)|(abs(I-=5)|(abs(I-B)=6)|(abs(I-A)=7)continue;queen8=I;cout NO.setw(2)count: ;return 0;运行结果如下:for (int i=l;i=8;i+)coutsetw(3)queeni

6、;count+;coutendl;3 活动=:VC-l、弟 T 京 &皇后bug % 皇后-esL eNOg8G372WNO.2&S3V乏2GNO.3P乜&82G3NO. 乜PG82乏&3NO.G24G831_PGNO.G2G1_38&乏NOP2G乏8&3NO82&P83GNO92GS3PGNO2P3&G1_NO.1_1_2P58&3NO.22a&3GP4NO.33PG824&NO_zL43G28P4&NO_zLG3G284PNO_&3GP28&NO3gP2GNO.33G258=L?NO-=L93G25NO.203G2G=LNO.23G=L852NO.223G285?=LNO.233G=L45

7、2NO.243G=LG2HO.253&a2475HO.2&372S54GHO 27372S645HO.2S3S47G25HO 2?45S273GHO.3045Se372HO 3425Se37HO.324273eS5NO.334273eS5NO.34275sG3NO.3542S573GNO.3&42SG357NO.374G52s37NO.30号62?i35NO.3?63752NO号包号了zL5263NO专:LW了32515NO.2W了5N613NO.3W了535NNOWSzL36N?5NO.5WSzL5?N53NOWs53?N5NOV?51W58N?3NO51W2?35NO563?NWNOS包5

8、2W6831?VB23?82?s2333337a3551181853si6sis5SGG?i2G?llG?3&x2xx788v822581isi362ssll3G3t-4Gsrlrlsrlrl222-4-44s?7rlrl5s777FI27723-a6rls223-4Grlrlc222333?0ax22333333338122335223tGGGGSSSSSSSSSSGGG6GGG666666666777777ssssnS3 =51 =SS =5-4 =59 =S3 =-as G ?a84 =NO _ NO _ NO _ NO _ NO _ NO _ NO _ NO _ NO _ MO _ MO _ MO _ HO - HO . HO . HO . HO . HO .

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论