算法1(全集的所有子集)

此题为给一个集合,求所有子集中的某一个子集,这个子集满足条件:

1,此集合的和为一个level2幸运数字,该数字要么全是7,要么全是4

2,该集合为满足条件中所有数组中和最大的一个

3,如果有多个这样的数组,返回字典序最小的那个。

其中比较重要的算法就是求一个集合的所有子集:

如下:

int [] numbers ={};

ArrayList al = new ArrayList();

Arrays.sort(numbers);

int t=1<<numbers.length;

int i;

for(i=0;i<t;i++)

{

ArrayList a = new ArrayList();

int j=i;

int k=0;

while(j>0)

{

if((j&1)>0) //与运算判断j第k位是否为1,来决定第k个元素在不在地i个子集中

{

a.add(numbers[k]);

}

k++;

j=j>>1;   //右移一位来继续判断

}

al.add(a);

}

时间: 2024-08-13 15:00:20

算法1(全集的所有子集)的相关文章

TCHS 90-2 (全集的所有子集问题)

此题为给一个集合,求所有子集中的某一个子集,这个子集满足条件: 1,此集合的和为一个level2幸运数字,该数字要么全是7,要么全是4 2,该集合为满足条件中所有数组中和最大的一个 3,如果有多个这样的数组,返回字典序最小的那个. 其中比较重要的算法就是求一个集合的所有子集: 如下: int [] numbers ={}; ArrayList al = new ArrayList(); Arrays.sort(numbers); int t=1<<numbers.length; int i;

算法13------集合所有的子集或者字符串所有子串

1.题目: 给定字符串s='abc',所有子集:'a','b','c','ab','ac','bc','abc'. 所有子串:'a','b','c','ab','bc','abc' 2.所有子集代码: (1)位运算:(输入s为字符串)(输出subStr为迭代器,子集列表) def SubSet(s): N = len(s) for i in range(2**N): subStr = [] for j in range(N): if(i >> j ) % 2 == 1: subStr.appe

浅谈关于特征选择算法与Relief的实现

一. 背景 1) 问题 在机器学习的实际应用中,特征数量可能较多,其中可能存在不相关的特征,特征之间也可能存在相关性,容易导致如下的后果: 1.     特征个数越多,分析特征.训练模型所需的时间就越长,模型也会越复杂. 2.     特征个数越多,容易引起“维度灾难”,其推广能力会下降. 3.     特征个数越多,容易导致机器学习中经常出现的特征稀疏的问题,导致模型效果下降. 4.     对于模型来说,可能会导致不适定的情况,即是解出的参数会因为样本的微小变化而出现大的波动. 特征选择,能

最小生成树 Prim(普里姆)算法和Kruskal(克鲁斯特尔)算法

Prim算法 1.概览 普里姆算法(Prim算法),图论中的一种算法,可在加权连通图里搜索最小生成树.意即由此算法搜索到的边子集所构成的树中,不但包括了连通图里的所有顶点(英语:Vertex (graph theory)),且其所有边的权值之和亦为最小.该算法于1930年由捷克数学家沃伊捷赫·亚尔尼克(英语:Vojtěch Jarník)发现:并在1957年由美国计算机科学家罗伯特·普里姆(英语:Robert C. Prim)独立发现:1959年,艾兹格·迪科斯彻再次发现了该算法.因此,在某些场

[迷宫中的算法实践]迷宫生成算法&mdash;&mdash;Prim算法

       普里姆算法(Prim算法),图论中的一种算法,可在加权连通图里搜索最小生成树.意即由此算法搜索到的边子集所构成的树中,不但包括了连通图里的所有顶点(英语:Vertex (graph theory)),且其所有边的权值之和亦为最小.该算法于1930年由捷克数学家沃伊捷赫·亚尔尼克(英语:Vojtěch Jarník)发现:并在1957年由美国计算机科学家罗伯特·普里姆(英语:Robert C. Prim)独立发现:1959年,艾兹格·迪科斯彻再次发现了该算法.因此,在某些场合,普里姆

最小生成树-Prim算法和Kruskal算法

原文链接:http://www.cnblogs.com/biyeymyhjob/archive/2012/07/30/2615542.html Prim算法 1.概览 普里姆算法(Prim算法),图论中的一种算法,可在加权连通图里搜索最小生成树.意即由此算法搜索到的边子集所构成的树中,不但包括了连通图里的所有顶点(英语:Vertex (graph theory)),且其所有边的权值之和亦为最小.该算法于1930年由捷克数学家沃伊捷赫·亚尔尼克(英语:Vojtěch Jarník)发现:并在195

数据挖掘算法-Apriori Algorithm(关联规则)

http://www.cnblogs.com/jingwhale/p/4618351.html Apriori algorithm是关联规则里一项基本算法.是由Rakesh Agrawal和Ramakrishnan Srikant两位博士在1994年提出的关联规则挖掘算法.关联规则的目的就是在一个数据集中找出项与项之间的关系,也被称为购物蓝分析 (Market Basket analysis),因为“购物蓝分析”很贴切的表达了适用该算法情景中的一个子集. 关于这个算法有一个非常有名的故事:"尿布

转载:最小生成树-Prim算法和Kruskal算法

本文摘自:http://www.cnblogs.com/biyeymyhjob/archive/2012/07/30/2615542.html 最小生成树-Prim算法和Kruskal算法 Prim算法 1.概览 普里姆算法(Prim算法),图论中的一种算法,可在加权连通图里搜索最小生成树.意即由此算法搜索到的边子集所构成的树中,不但包括了连通图里的所有顶点(英语:Vertex (graph theory)),且其所有边的权值之和亦为最小.该算法于1930年由捷克数学家沃伊捷赫·亚尔尼克(英语:

数据挖掘系列(1)关联规则挖掘基本概念与Aprior算法

整理数据挖掘的基本概念和算法,包括关联规则挖掘.分类.聚类的常用算法,敬请期待.今天讲的是关联规则挖掘的最基本的知识. 关联规则挖掘在电商.零售.大气物理.生物医学已经有了广泛的应用,本篇文章将介绍一些基本知识和Aprori算法. 啤酒与尿布的故事已经成为了关联规则挖掘的经典案例,还有人专门出了一本书<啤酒与尿布>,虽然说这个故事是哈弗商学院杜撰出来的,但确实能很好的解释关联规则挖掘的原理.我们这里以一个超市购物篮迷你数据集来解释关联规则挖掘的基本概念: TID Items T1 {牛奶,面包