Java 根据4个标志的哪个子集执行条件
我想找到一个有效的算法,基于它是哪个子集。每个子集都要执行新的条件。 例如:我有4个标志ABCD,每个子集都有单独的条件。解决以下情况的最有效算法是什么。这很容易,但我想找到最有效的算法。有没有一种算法可以解决这类问题Java 根据4个标志的哪个子集执行条件,java,algorithm,Java,Algorithm,我想找到一个有效的算法,基于它是哪个子集。每个子集都要执行新的条件。 例如:我有4个标志ABCD,每个子集都有单独的条件。解决以下情况的最有效算法是什么。这很容易,但我想找到最有效的算法。有没有一种算法可以解决这类问题 A B C D 0 0 0 0 Subset 1 Execute Condition 1 0 0 0 1 Subset 2 Execute Condition 2 0 0 1 0 Subset
A B C D
0 0 0 0 Subset 1 Execute Condition 1
0 0 0 1 Subset 2 Execute Condition 2
0 0 1 0 Subset 3 Execute Condition 3
0 0 1 1 Subset 4 Execute Condition 4
0 1 0 0 Subset 5 Execute Condition 5
0 1 0 1 Subset 6 Execute Condition 6
0 1 1 0 Subset 7 Execute Condition 7
0 1 1 1 Subset 8 Execute Condition 8
1 0 0 0 Subset 9 Execute Condition 9
1 0 0 1 Subset 10 Execute Condition 10
1 0 1 0 Subset 11 Execute Condition 11
1 0 1 1 Subset 12 Execute Condition 12
1 1 0 0 Subset 13 Execute Condition 13
1 1 0 1 Subset 14 Execute Condition 14
1 1 1 0 Subset 15 Execute Condition 15
1 1 1 1 Subset 16 Execute Condition 16
可用于生成所有子集。有四个值。因此,您有2^4个子集。您所要做的就是将这个掩码迭代2^4次,并用四个值中的每一个来屏蔽它。在每次迭代中,掩蔽的结果是给定值的子集。这里有一个想法:
allSubsets = {}
for mask in range(1<<4):
subsets = []
for i in range(0,3):
val = mask & (1<<i)
if(val)
subsets.append(a[i]) # Individual subset. Here assume array a has 4 values. Can be just 1s and 0s as in your case.
allSubsets[mask] = subset #keep appending each generated subset
return allSubsets # Do your operation by iterating on each of these subsets
allsubset={}
对于范围内的掩码(1二叉树-O(对数n)。对于少量标志,将它们连接为form和integer,然后使用表查找检索函数指针或对象,然后在该对象上执行方法。为什么会有Mainframe标记?这是错误的。我已删除Mainframe标记。条件是否直接取决于标志?