穷举
baother0
这个作者很懒,什么都没留下…
展开
-
八皇后
//八皇后//(回溯法(backtracking))(回溯:将问题分为若干个步骤递归求解,如果当前步骤没有合法的选择,递归函数将不再递归的调用塔本身,而是返回上一层,这样的现象称为回溯(回溯法也常称为递归枚举算法),这类算法的工作原理可以用解答树来描述。/******///关于解答树//如果某个问题的解可以由多个步骤得到,而每个步骤都有若干个选择(这些候选的方案可能会依赖于先前做出的选择)原创 2013-06-24 21:48:25 · 784 阅读 · 0 评论 -
求 3 2 4 3 1五个数中任意几个和为7的所有的组合
package com.zhanglei.baotaher;import java.util.List;import java.util.ArrayList;public class Test { public static void main (String []args) { List list = new ArrayList(); list.add(3);原创 2012-03-04 16:30:35 · 677 阅读 · 0 评论 -
子集生成
//子集生成#include "stdio.h"int num[] = {1,2,3,4};/**增量构造法**//** *A中的元素的个数是不确定的,每次递归都要输出。 *注意:下面代码使用了定序的小技巧:规定集合中的所有元素的编号从小到大排序。 * */void print_subset (int n,int *A,int cur) { int原创 2013-06-23 21:50:17 · 871 阅读 · 0 评论 -
生成1~n的排列和生成可重集的排列
//问题:生成1~n的全排列#include "stdio.h"#define MAX_LENGTH 20 int num[MAX_LENGTH];void permutation (int cur,int n) { if (cur >= n) { int i = 0; while (i < n) { printf ("%d ",num[i]); i++;原创 2013-06-23 17:37:17 · 1245 阅读 · 0 评论 -
一种新的走迷宫的方法
对于走迷宫,人们提出过很多计算机上的解法。深度优先搜索、广度优先搜索是使用最广的方法。下面的代码则采用了另一种不同的解法。它把走迷宫的过程比做“染色过程”。假设入口点被染为红色,它的颜色会“传染”给与它相邻的可走的单元。这个过程不断进行下去,如果最终出口点被染色,则迷宫有解。import java.util.*; public class Maze{ class Cell原创 2012-03-04 16:47:09 · 1473 阅读 · 0 评论