子集和问题 暴力求解算法
来源:互联网 发布:安卓一键添加好友软件 编辑:程序博客网 时间:2024/05/16 09:35
子集和问题的一个实例为<S,c>。其中S={x1,x2,…,xn}是一个正整数的集合,c是一个正整数。子集和问题判定是否存在S的一个子集S1,使得S1中所有元素的和为c。
暴力法也称为穷举法、蛮力法,它要求调设计者找出所有可能的方法,然后选择其中的一种方法,若该方法不可行则试探下一种可能的方法。
暴力法也是一种直接解决问题的方法,常常直接基于问题的描述和所涉及的概念定义。 暴力法不是一个最好的算法,但当我们想不出更好的办法时,它也是一种有效的解决问题的方法。
暴力法的优点是逻辑清晰,编写程序简洁。在程序设计竞赛时,时间紧张,相对于高效的、巧妙的算法,暴力法编写的程序简单,能更快地解决问题。同时蛮力法也是很多算法的基础,可以在蛮力法的基础上加以优化,得到更高效的算法。
而且,某些情况下,算法规模不大,使用优化的算法没有必要,而且某些优化算法本身较复杂,在规模不在时可能因为复杂的算法浪费时间,反而不如简单的暴力搜索。
使用暴力法常用如下几种情况:
(1)搜索所有的解空间;
(2)搜索所有的路径;
(3)直接计算;
(4)模拟和仿真
#include <stdio.h>#include <math.h>int main(){int i,j;int n,c;int *s;int temp,sum;scanf("%d%d",&n,&c);s=new int [n];for(i=0;i<n;i++){scanf("%d",&s[i]);}for(i=0;i<pow(2,n);i++){temp=i; sum=0;for(j=0;j<n;j++){if(temp%2)sum+=s[j];temp=temp/2;}if(sum==c){temp=i;for(j=0;j<n;j++){if(temp%2){printf("%4d",s[j]);}temp=temp/2;}printf("\n");}}return 0;}
0 0
- 子集和问题 暴力求解算法
- 算法学习:子集和数问题求解
- 子集和问题 回溯法求解
- 回溯法实现求解子集合和问题
- 算法之暴力求解
- 子集枚举问题求解-Prolog
- 背包问题-暴力求解
- 回溯算法-定和子集问题
- 鸡兔同笼问题java暴力求解算法
- 算法学习之暴力求解
- 分书问题 暴力求解
- #初学算法#分治策略---最大子数列的暴力求解和分治求解对比
- 子集和问题
- 子集和问题
- 子集和问题
- 8603 子集和问题
- 子集和问题
- 子集和问题
- JFinal contextPath路径处理
- boost Regex
- 开发使用混合式Winform模块 WCF
- maven项目的导入、编译和运行
- linux下mysql修改root密码
- 子集和问题 暴力求解算法
- Xbox Live在线服务遭遇DDoS攻击而瘫痪
- 沪市和深市股票托管方式的区别
- IOS开发基础之──NSLog 输出格式详解
- 关于inputstream.read
- Struts2用action方式实现文件下载
- java工具
- [Android] 环境配置之正式版Android Studio 1.0
- 【创业邦·年度创业人物】刘强东:十年战争与千亿美金帝国梦