当前位置: 首页 > news >正文

网站建设案例模板下载选做旅游网站的课题分析

网站建设案例模板下载,选做旅游网站的课题分析,哪个网站做原创歌曲,重庆网站设计制作案例N皇后问题 一、问题描述二、示例2.1 四皇后的2个可行解2.2 过程图示 三、问题分析3.1涉及到的概念递归回溯 3.2 分析 四、 代码实现4.1 实现思路宏观#xff1a;微观#xff1a; 4.2 递归函数NS图4.3 代码 一、问题描述 1、按照国际象棋的规则#xff0c;皇后可以攻击与之处… N皇后问题 一、问题描述二、示例2.1 四皇后的2个可行解2.2 过程图示 三、问题分析3.1涉及到的概念递归回溯 3.2 分析 四、 代码实现4.1 实现思路宏观微观 4.2 递归函数NS图4.3 代码 一、问题描述 1、按照国际象棋的规则皇后可以攻击与之处在同一行或同一列或同一斜线上的棋子。 2、n 皇后问题研究的是如何将 n 个皇后放置在 n×n 的棋盘上并且使皇后彼此之间不能相互攻击。 二、示例 2.1 四皇后的2个可行解 2.2 过程图示 以四皇后为例展示寻找一种可行解的过程 三、问题分析 3.1涉及到的概念 递归 自己调自己,在方法中调用方法本身。 使用递归需要注意 1、递归要有出口不能是死循环死循环会造成栈溢出。 2、递归次数不宜过多过多也会有栈溢出的问题。 回溯 回溯法是一种解决问题的算法它会尝试每一种可能的解决方案来找到最佳解。 3.2 分析 回溯法一般通过递归实现。在n皇后问题中我们可以从第一行开始每行放置皇后检查该皇后是否与之前的皇后冲突如果没有则放置下一行的皇后如果发现无解则回溯到上一行重新尝试。 回溯用递归的方式去控制for嵌套的层数4×4递归4层每一层有一个for循环遍历每一层对应的位置。时间复杂度和嵌套for循环一致。 四、 代码实现 4.1 实现思路 宏观 使用深度搜索的方法按照先行后列的顺序查看每一个位置是否满足条件。 微观 定义二维数组表示棋盘定义一个变量n表示几个皇后定义一个方法用来判断当前摆放的皇后是否与之前的皇后冲突同列、左上方右上方)冲突返回0否则返回1表示此位置可以放置皇后。定义一个递归函数尝试在当前行放置皇后。 这里给一个回溯代码模板 if(终止条件){收集结果return; }for(遍历本层集合中的元素){处理节点递归回溯撤销处理结果 }4.2 递归函数NS图 4.3 代码 package com.lsn.NQueen;public class NQueens {// 定义一个二维数组表示棋盘int[][] board;// 定义一个变量表示几个皇后int n;// 构造函数初始化棋盘和npublic NQueens(int n) {board new int[n][n];this.n n;}// 判断当前摆放的皇后是否与之前的皇后冲突public boolean isSafe(int row, int col) {int i, j;// 检查当前列是否有皇后for (i 0; i row; i) {if (board[i][col] 1) {return false;}}// 检查左上方是否有皇后for (i row, j col; i 0 j 0; i--, j--) {if (board[i][j] 1) {return false;}}// 检查右上方是否有皇后for (i row, j col; i 0 j n; i--, j) {if (board[i][j] 1) {return false;}}// 如果都没有冲突则返回truereturn true;}// 递归函数尝试在当前行放置皇后public boolean solve(int row) {// 如果所有行都已经摆放完毕则返回true终止条件收集结果if (row n) {return true;}// 尝试在当前行的每一列放置皇后单层逻辑处理节点for (int col 0; col n; col) {// 判断当前位置是否安全if (isSafe(row, col)) {// 如果安全则将皇后放置在当前位置board[row][col] 1;// 递归调用solve函数尝试在下一行放置皇后if (solve(row 1)) {return true;}// 如果下一行无法放置皇后则回溯到当前行重新尝试放置皇后撤销处理节点的情况board[row][col] 0;}}// 如果当前行的每一列都无法放置皇后则返回falsereturn false;}// 打印棋盘public void printBoard() {for (int i 0; i n; i) {for (int j 0; j n; j) {System.out.print(board[i][j] );}System.out.println();}}public static void main(String[] args) {// 创建一个NQueens对象并初始化规模为8NQueens nQueens new NQueens(3);// 调用solve函数尝试解决N皇后问题if (nQueens.solve(0)) {// 如果找到了解则打印棋盘nQueens.printBoard();} else {// 如果没有找到解则打印无解System.out.println(No solution found.);}} }
http://www.hkea.cn/news/14410290/

相关文章:

  • 关于做网站的外语文献网站怎么做 凡科
  • 怎样设计一个网站平台易思腾网站建设
  • 网站资源做缓存东莞网站建设公司电话
  • safari网站入口自己制作网站的步骤
  • 做网站的分析报告案例婚纱摄影网站管理系统
  • 济南网站建设价格海南房产信息网
  • 网站开发流行语言论坛打赏网站开发
  • 营销型网站建设eyouc昆山网站建设官网
  • 建网页网站html5企业网站建设
  • lamp网站开发旅游网络营销策划方案
  • 成都网站设计与制作深圳罗湖网站制作公司哪家好
  • 网站设计比例楚雄网站开发rewlkj
  • icp备案网站名称是什么意思网站建设合同范文
  • 玉林住房和城乡建设部网站中国建设教育协会网站查询
  • 学院门户网站建设自评荔浦火车站建设在哪里
  • 计算机网站模板移动互联网开发技术电子书
  • 做门窗的网站外包网站开发合同
  • 学网站开发培训网站开发开票税率
  • 三门峡做网站推广合肥高端网站建设费用
  • php 企业建站cmswordpress 图集
  • 开企网站建设网页颜色搭配案例
  • 企业网站建设相关书籍免费的网站托管
  • 利用ps制作网站的设计东莞外贸公司建网站
  • 做a网站百分百营销软件
  • 赣榆网站建设简述网站开发工作流程
  • 可视化拖拽网站建设软件石家庄城乡建设厅网站
  • 给企业做网站公司酒店 wordpress
  • 百度移动网站排名网站推广公司排行榜
  • 山东网站推广网站建设步骤大全
  • 网站建设和管理颁奖WordPress博客设置最新文章