草庐IT

powerset

全部标签

ruby - 生成集合的所有 "unique"子集(不是幂集)

假设我们有一个集合S,它包含几个子集:-[a,b,c]-[a,b]-[c]-[d,e,f]-[d,f]-[e]我们还假设S包含六个唯一元素:a、b、c、d、e和f。我们如何找到S的所有可能子集,这些子集恰好包含S的每个唯一元素一次?函数/方法的结果应该是这样的:[[a,b,c],[d,e,f]];[[a,b,c],[d,f],[e]];[[a,b],[c],[d,e,f]];[[a,b],[c],[d,f],[e]].是否有任何最佳实践或任何标准方法来实现这一点?如果有伪代码、Ruby或Erlang示例,我将不胜感激。 最佳答案 听

go - 在 Golang 中生成 powerset 的代码给出了错误的结果

Golang中生成幂集的下一个代码在输入{"A","B","C","D","E"}时产生错误结果。我看到[ABCEE]作为最后生成的集合。packagemainimport("fmt")funcmain(){for_,s:=rangePowerSet([]string{"A","B","C","D","E"}){fmt.Println(s)}}funcPowerSet(set[]string)[][]string{varpowerSet[][]stringpowerSet=append(powerSet,make([]string,0))for_,element:=rangeset{v

php - 如何计算最大值可能的组合数量?

这个问题在这里已经有了答案:关闭12年前。PossibleDuplicates:Displaypossiblecombinationsofstringalgorithmthatwilltakenumbersorwordsandfindallpossiblecombinations如果我有3个字符串,比如:"abcdefxyz"我想找到通过重新排列这些字符串可以生成的最大组合数,例如:abcxyzdefdefxyzabcxyzabcdef等计算这个的公式/算法是什么?

java - java中的高效排列算法

我正在尝试编写一种方法来计算幂集的所有排列,其中顺序很重要。我相信这些被称为“安排”。我的意思是:{a}->{{a},{}}{a,b}->{{a,b},{b,a},{a},{b},{}}{a,b,c}->{{a,b,c},{a,c,b},{b,a,c},{b,c,a},{c,a,b},{c,b,a},{a,b},{a,c},{b,a},{b,c},{c,a},{c,b},{a},{b},{c},{}}等我的印象是,给定一个集合S,我应该生成S的幂集的每个子集的每个排列。所以首先生成幂集,然后将置换函数映射到每个集合。问题是这非常复杂——类似于O(∑n!/k!)且k=0..n。我想知道是

java - 打印列表的所有可能子集

我有一个元素列表(1,2,3),我需要获取该列表的超集(幂集)(没有重复元素)。所以基本上我需要创建一个列表列表,如下所示:{1}{2}{3}{1,2}{1,3}{2,3}{1,2,3}什么是最好的(在这种情况下简单>效率,列表不会很大)实现这个的方法?最好使用Java,但使用任何语言的解决方案都会很有用。 最佳答案 使用位掩码:intallMasks=(10)//Thej-thelementisusedSystem.out.print((j+1)+"");System.out.println();}这里是所有的位掩码:1=001=

c++ - 找到幂集的第 n 组

我正试图找到幂集中的n-th集。n-th我的意思是幂集是按以下顺序生成的——首先是大小,然后是字典序——如此,的幂集中集合的索引>[a,b,c]是:0-[]1-[a]2-[b]3-[c]4-[a,b]5-[a,c]6-[b,c]7-[a,b,c]在寻找解决方案时,我只能找到一种算法来返回元素列表的第n个排列——例如,here.上下文:我正在尝试检索元素vectorV的整个幂集,但我需要一次处理一个集合。要求:我只能同时维护两个vector,第一个包含列表中的原始项,第二个包含V的幂集中的n-th集合--这就是为什么我愿意在这里使用n-thset函数;我需要在解决方案空间的线性时间内而不

c++ - powerset 中的组合或子集的 next_permutation

是否有一些等效的库或函数可以为我提供一组值的下一个组合,例如next_permutation对我有帮助吗? 最佳答案 组合:来自MarkNelson关于同一主题的文章,我们有next_combinationhttp://marknelson.us/2002/03/01/next-permutation排列:从STL我们有std::next_permutationtemplateinlineboolnext_combination(constIteratorfirst,Iteratork,constIteratorlast){if((

arrays - 在swift中查找字符串数组的所有组合

我有一个字符串数组,我想找到它的元素的所有可能组合ForExample:Array=[A,B,C,D]shouldproduceresultas:[A,AB,AC,AD,ABC,ABD,ACD,ABCD,B,BC,BD,BCD,C,CD,D]这是我的逻辑:vararray=["A","B","C","D"]varlist=[String]()foriin0..ItsOutputis:["A","AB","AC","AD","ABC","ABD","ACD","B","BC","BD","BBD","C","CD","D"]此输出缺少ABCD并将BCD错误地打印为BBD任何人请通过增强我

c++ - 位产生的功率集

我有这段代码可以生成大小为4的数组的幂集(数字只是示例,要编写的组合更少...)。#defineARRAY_SIZE4unsignedinti,j,bits,i_max=1U>=1,++j){if(bits&1)printf("%d",array[j]);}}输出:{}{1}{2}{1,2}{3}{1,3}{2,3}{1,2,3}{4}{1,4}{2,4}{1,2,4}{3,4}{1,3,4}{2,3,4}{1,2,3,4}我需要这样的输出:{1}{2}{3}{4}{1,2}{1,3}{1,4}{2,3}{2,4}{3,4}{1,2,3}{1,2,4}{1,3,4}{2,3,4}{1,

c++ - 位产生的功率集

我有这段代码可以生成大小为4的数组的幂集(数字只是示例,要编写的组合更少...)。#defineARRAY_SIZE4unsignedinti,j,bits,i_max=1U>=1,++j){if(bits&1)printf("%d",array[j]);}}输出:{}{1}{2}{1,2}{3}{1,3}{2,3}{1,2,3}{4}{1,4}{2,4}{1,2,4}{3,4}{1,3,4}{2,3,4}{1,2,3,4}我需要这样的输出:{1}{2}{3}{4}{1,2}{1,3}{1,4}{2,3}{2,4}{3,4}{1,2,3}{1,2,4}{1,3,4}{2,3,4}{1,
12