八皇后——穷举法.docx_第1页
八皇后——穷举法.docx_第2页
八皇后——穷举法.docx_第3页
八皇后——穷举法.docx_第4页
全文预览已结束

下载本文档

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

文档简介

利用穷举解法来解决八皇后问题。 由于棋盘的对称性,第一行只考虑前四列的情况,然后逐行查找可行点,计算出结果后,总的解法数即是计算结果的两倍,而后四列的情况也即是前四列结果关于垂直线的对称。源程序如下:1. publicclassEightQueens2. intanswer=0;/结果数 3. intchess=newint88;/棋盘 4. EightQueens()5. inti=0,j=0,k=0;6. /取半个棋盘计算结果,最后结果*2 7. for(k=0;k4;k+)8. /棋盘初始化为0 9. for(i=0;i8;i+)10. for(j=0;j8;j+)11. chessij=0;12. 13. /第一行 14. chess0k=1;15. row(1);16. 17. System.out.println(八皇后问题共有+answer+种解法);18. 19. publicvoidrow(intI)20. inti=0,j=0;21. for(j=0;j8;j+)22. /重新初始化行 23. for(i=I;i0)25. for(intk=0;k8;k+)26. chessik=0;27. 28. 29. 30. if(sum1(j)=0&sum2(I,j)=0)31. chessIj=1;32. if(I=7)33. answer+=2;34. /输出结果,棋盘以数组形式表示 35. /*for(inta=0;a8;a+)36. for(intb=0;b8;b+)37. System.out.println(解法+answer+:);38. System.out.print(chessab+);39. 40. System.out.println();41. 42. System.out.println();43. */44. /*for(inta=0;a8;a+)45. for(intb=0;b8;b+)46. System.out.println(解法+(answer+1)+:);47. System.out.print(chessa7-b+);48. 49. System.out.println();50. 51. System.out.println();52. */53. 54. elserow(I+1);55. 56. 57. 58. /计算行值 59. publicintsum(inti)60. intj=0,s=0;61. for(j=0;j8;j+)62. s+=chessij;63. 64. returns;65. 66. /计算列值 67. publicintsum1(intj)68. inti=0,s=0;69. for(i=0;i=0&j=0;i-,j-)78. s+=chessij;79. 80. for(i=I,j=J;i=0&j8;i-,j+)81. s+=chessij;82. 83. for(i=I,j=J;i=0;i+,j-)84. s+=chessij;85. 86. for(i=I,j=J;i8&j8;i+,j+)87. s+=chessij;88. 89. returns;90. 91. publicstatic

温馨提示

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

评论

0/150

提交评论