令人烦恼的是,这个问题很容易,但今天一直令我头痛。 (道歉的伪代码)布尔数组的所有组合
说我们有布尔,a
和两个数组列表b
其中:
a = [true, true, false]
b = [true, false, true]
我想产生的所有组合的列表a
和b
之间的比较与以下规则:
- 如果
a[i] = true
和b[i] = true
产生的result[i]
应该总是返回true
。 - 如果
a[i] = false
和b[i] = false
总是返回false
。 - 如果
a[i] != b[i]
返回列表,其中一个result[i]
是true
而另一个是false
。
所以对于compare(a,b)
预期的结果将是(我希望...):
[true, true, false],
[true, false, false],
[true, true, true],
[true, false, true]
我试图做到这一点在Java中,但似乎无法正常循环,任何人都可以给我一些帮助?
编辑:
另一个简单的例子,对于规则3:
a = [true, false]
b = [false, true]
results:
[true, false]
[false, true]
[true, true]
[false, false]
基本上这就是我的意思:)
应该不是最后一个是'[真,假,真]'? –
不能理解输出。它不能正确。 false + true = false,false + false = false,false + true = false,true + false = false,true + false = false。如果将数组a中的每个元素与数组b中的每个元素相结合,则会得到5次错误。但你的输出只显示4次。 – kai
3^2 +数组a的给出了两次列表,并且数组a的两个真都给出了一个列表,所以在结果中有13个值不是12。 – kai