NPC问题——回溯算法、聚类分析
来源:互联网 发布:运行u启动windows 编辑:程序博客网 时间:2024/05/22 06:48
public class queen { private int[] box;//检查同行和同列是否有Qprivate int[] rl; //检查左下和右上是否有Qprivate int[] lr; //检查左上和右下是否有Qprivate int[] queen; //解答private int num; // 解答编号 public queen() { //构造函数box = new int[8+1];lr = new int[2*8+1]; rl = new int[2*8+1]; for(int i = 1; i <= 8; i++) box[i] = 1; for(int i = 1; i <= 2*8; i++)lr[i] = rl[i] = 1; queen = new int[8+1]; } public void backtrack(int i) //确定位置{ if(i > 8) { show(); } else { for(int j = 1; j <= 8; j++) { if(box[j] == 1 && lr[i+j] == 1 && rl[i-j+8] == 1) { queen[i] = j; // 设定为占用 box[j] = lr[i+j] = rl[i-j+8] = 0;backtrack(i+1); box[j] = lr[i+j] = rl[i-j+8] = 1; } } } }protected void show() //显示解答{num++;if(num>=4){return;}else{System.out.println("\n解答 :" + num);for(int y = 1; y <= 8; y++){ for(int x = 1; x <= 8; x++) { if(queen[y] == x) { System.out.print(" Q"); } else { System.out.print(" x"); } }System.out.println(); } }}public static void main(String[] args) { queen queen = new queen(); queen.backtrack(1); }}
参考程序:百度百科“皇后问题”
0 0
- NPC问题——回溯算法、聚类分析
- NPC问题——回溯算法、聚类分析
- 实验一 NPC问题——回溯算法、聚类分析
- 第一次实验——NPC问题(回溯算法,聚类分析)
- 第一次实验—NPC问题(回溯算法、聚类分析)
- 第一次实验--NPC问题(回溯算法、聚类分析)
- 第1次实验——NPC问题(回溯算法、聚类分析) N皇后的问题
- 计科1111-1114班第一次实验作业(NPC问题——回溯算法、聚类分析)
- 第1次实验——NPC问题(回溯算法、聚类分析)
- 第1次实验——NPC问题(回溯算法、聚类分析)
- 第1次实验——NPC问题(回溯算法、聚类分析)
- 第1次实验——NPC问题(回溯算法、聚类分析)
- 第1次实验——NPC问题(回溯算法、聚类分析)
- 第1次实验——NPC问题(回溯算法、聚类分析)
- 第1次实验——NPC问题(回溯算法、聚类分析)
- 第1次实验——NPC问题(回溯算法、聚类分析)
- 第1次实验——NPC问题(回溯算法、聚类分析)
- 第1次实验——NPC问题(回溯算法、聚类分析)
- OC_内存管理笔记
- 《数学之美》拾遗——潜在语义索引(LSI)
- C++ Traits
- [leetcode]Set Matrix Zeroes
- 可变参数及可变参数宏的使用
- NPC问题——回溯算法、聚类分析
- java笔试常考的几种设计模式
- 中颖TIM4定时初始化
- RAC性能调优
- java线程阻塞中断与LockSupport使用介绍
- STL
- 可扩展的listview~ExpandableListView
- php采集程序的方法
- kzalloc()_kcalloc()