八皇后问题----Java实现
public class Queen8 {//记录个数int count = 0;//定义一个max表示共有多少个皇后int max = 8;//定义一个数组,保存皇后放置的位置的结果int[] arr = new int[max];public static void main(String[] args) {Queen8 q = new Queen8();q.check(0);System.out.println(q.count);}//放置皇后/*每一层进入下一层都会有个for循环的结构,即可产生回溯*/private void check(int n){if (n == max){//退出print();return;}//依次放入皇后,并判断是否冲突for (int i = 0; i < max; i++) {//先把当前这个皇后 n, 放到该行的第一列arr[n] = i;//判断当放置第n个皇后到i列时,是否冲突if (judge(n)){//接着放入n+1个皇后,即开始递归check(n+1);}//如果冲突,就继续执行for这个循环}}//查看当我们放置第n个皇后时,检测是否和前面已经放好的皇后冲突private boolean judge(int n){//n表示第n个皇后for (int i = 0; i < n; i++) {/*说明:1. arr[i] == arr[n] 判断不在同一列2. Math.abs(n-i) == Math.abs(arr[n]-arr[i])判断是否在同一斜线*/if (arr[i] == arr[n] || Math.abs(n-i) == Math.abs(arr[n]-arr[i])){return false;}}return true;}//将皇后摆放的位置输出private void print(){count++;for (int i = 0; i < arr.length; i++) {System.out.print(arr[i]+" ");}System.out.println();}
}
八皇后问题----Java实现相关推荐
- 八皇后问题java_八皇后问题java实现
八皇后问题java实现public class eightqueen { public static int count=0; public static void main(String[] arg ...
- 八皇后问题(Java代码实现)
什么是八皇后问题 八皇后问题,是一个古老而著名的问题,是回溯算法的典型案例.该问题是国际西洋棋棋手马克斯·贝瑟尔于1848年提出:在8×8格的国际象棋上摆放八个皇后,使其不能互相攻击,即:任意两个皇后 ...
- 八皇后java_八皇后(JAVA算法实现)
在学习现代软件工程构建之法这门课时,老师要求发表一篇博客,使用JAVA算法实现八皇后问题的求解.写这篇博客时,我学习了一些其他的博客,自己无法解决时,向他人学习也是一种方法. 国际西洋棋棋手马克斯·贝 ...
- 用递归思想和回溯算法解决八皇后问题(java实现)
八皇后问题 八皇后问题,是一个古老而著名的问题,是回溯算法的典型案例.该问题是国际西洋棋棋手马克斯·贝瑟尔于1848年提出:在8×8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处 ...
- 回溯算法解决八皇后问题(JAVA实现)
送给程序猿们一句话 <拥有水滴石穿的坚持:懂得聚沙成塔的积累:磨练坚韧不拔的意志:学习脚踏实地的奋斗:提升立世做人的技巧:突破自我设限的障碍.> 文章目录 背景 问题解决 思路 什么是回溯 ...
- 八皇后java_经典八皇后问题:Java语言
问题描述:将八个皇后放在棋盘上,任何两个皇后都不能互相攻击(即没有任何两个皇后在同一行.同一列或者同一对角线上)如图所示,题目来自于<java语言程序设计:基础篇>练习题6.20和6.22 ...
- 用java实现八皇后问题_使用java语言实现八皇后问题
八皇后问题,在一个8X8的棋盘中,放置八个棋子,每个棋子的上下左右,左上左下,右上右下方向上不得有其他棋子.正确答案为92中,接下来用java语言实现. 解: package eightQuen; / ...
- 八皇后问题的Java递归算法
1. 八皇后问题 在8*8的棋盘上,放置8个皇后,使各个皇后之间不处于同一行.同一列.同一斜线上,如下图红线部分是和中间红色圆圈冲突位置. 2. 八皇后的递归分析 1. 使用递归分析,首先,第一个皇后 ...
- Java基础记忆12(八皇后算法和五子棋玩法)
首先,在国际象棋中.八皇后是8*8棋盘,其中皇后可以直线行走,可以斜线行走,不分上下左右格数的. 附可行摆法: 所以,可归纳问题的条件为,8皇后之间需满足: 1.不在同一行上 ...
- java中经典八皇后难题_Java实现经典八皇后的问题
今天自己实现了八皇后的问题,其实代码并不长,但是关于虚拟机中怎样实现的想了好长时间特别是红色部分.现在还是有点不是很明白.代码如下,已经实现运行. public class EightQueen { ...
最新文章
- 关于python2和python3除法的区别
- 使用 Binlog 和 Canal 从 MySQL 抽取数据
- 2016年Web前端面试题
- 【集合框架】JDK1.8源码分析HashSet LinkedHashSet(八)
- 第16/24周 SQL Server 2014中的基数计算
- 推进 DevSecOps 走向未来
- OO第一单元总结——多项式求导
- n维椭球体积公式_干掉公式 —— numpy 就该这么学
- 图像处理之基础---大话小波和卷积
- 在页面加载后执行任务
- python 谷歌翻译 api_python免费调用谷歌翻译接口
- iphone更改照片分辨率?手机怎样修改图片分辨率?
- C语言编写飞机大战程序,C语言实现简单飞机大战
- 个人SEO成长指南:该怎么开启你的SEO业务
- 读吴军博士《智能时代》有感
- CentOS 7.2 安装Subversion(SVN)
- excel上下标录入技巧
- 二叉排序树详解及实现
- discuz mysql data_终于找到Discuz! Database Error终极解决办法了!
- [转]身体各部位暴瘦的方法
热门文章
- 大二狗卸任社团职位以及对专业发展方向的思考与总结
- 真·杂项:资本论阅读笔记(随缘更新)
- 恶意程序检测之malconv模型
- 关于USBKEY的CSP学习
- Spring Security Oauth2 JWT
- 外卖行业现状分析_2018年中国在线外卖行业市场现状及发展趋势分析 产品本地差异化细分或将为破局点...
- 打通法律服务群众“最后一公里”,方正璞华劳动人事法律自助咨询服务平台频获“点赞”
- 实用的网页模板(一)
- 【车间调度】柔性作业车间调度问题的研究现状
- NO3:步履蹒跚-完成第一章节学习