我在写信询问是否有人知道如何去做这件事。我不需要代码,我只是喜欢这样做的逻辑。所以我有一套{A,B,C,D,E}。现在我想在集合中的值中找到和或OR运算符的所有组合。找到一组集合的所有逻辑组合
下面的一些例子。
A and B and C and D and E
A and B and C and D or E
A and B and C or D and E
从我所知道的情况来看,在上面的例子中有2^n-1个可能性。所以在上面的具体例子中,我们将有8个组合。
除了上面的设置中的值可以有两种可能性。为了简单起见,让我们说A可以是真或假。同样B,C,D和E.因此,我们可能会有类似如下的东西:
A=True and B=True and C=True and D=True and E=True
A=True and B=True and C=True and D=True and E=False
A=True and B=True and C=True and D=True or E=True
等等。所以考虑到这一点,我们会有2 ^(2 * n-1)的组合。所以在上面的具体例子中,我们将有一组4个16个组合。
是否有算法已经做到了这一点?如果没有将任何人有一些逻辑在Java中实现这个
感谢,
你说有'2^n-1'的可能性 - 这取决于你的元素是在一个特定的顺序。所以你的'A,B,C,D,E'更像是一组序列。 – khelwood 2014-11-20 18:04:53
对于每个变量,赋值可能性的数量加倍,所以它是2 ^(2 * n-1),而不是2 * 2 ^(n-1)。 – dasblinkenlight 2014-11-20 18:06:34
你想要一个[真值表](http://en.wikipedia.org/wiki/Truth_table)吗? – StackFlowed 2014-11-20 18:09:30