- 积分
- 1284
- 注册时间
- 2014-12-29
- 最后登录
- 2016-11-14
- 在线时间
- 17 小时
- 威望
- 11
- 贡献
- 0
- 金币
- 359
- 钢镚
- 20
- 交易凭证
- 0
- 分享
- 0
- 精华
- 0
- 帖子
- 19
- 主题
- 18
TA的每日心情 | 慵懒 2015-4-16 10:25 |
---|
签到天数: 8 天 [LV.3]偶尔看看II
版主
- 威望
- 11
- 贡献
- 0
- 金币
- 359
- 钢镚
- 20
|
试探法也称为回溯法,它是一种系统的搜索问题解的方法,该算法设计思想适用范围相当广发,例如 棋手思考下一步走哪里就是采用试探法。
试探法的基本思路是:从问题的某一种状态出发,搜索从这种状态出发所能达到所有的状态,当一条路走到尽头时候,先退几步,接着从另一种可能的状态出发,继续搜索,直到所有的路径都尝试过。
常见的彩票组合号码都是由一些数字组成的,生产彩票号码其实就是将所有数字进行不同的组合。
- // 编程算法之试探法.cpp : 定义控制台应用程序的入口点。
- //
-
- #include "stdafx.h"
-
-
- #define MAXN 7
- #define NUM 29
- int num[MAXN];
- int lottery[MAXN];
-
- void combine(int n,int m)
- {
- for(int i=n;i>=m;--i)
- {
- lottery[m-1] = num[i-1];
- if(m>1)
- combine(i-1,m-1);
- else
- {
- for(int j=MAXN-1;j>=0;--j)
- {
- printf("%3d",lottery[j]);
- }
- printf("\n");
- }
-
- }
- }
-
- int _tmain(int argc, _TCHAR* argv[])
- {
- int i;
- for(i = 0;i<NUM;++i)
- num[i] = i+1;
- for(i=0;i<MAXN;++i)
- lottery[i] = 0;
- combine(NUM,MAXN);
- return 0;
- }
复制代码
|
评分
-
查看全部评分
|