令人煩惱的是,這個問題很容易,但今天一直令我頭痛。 (道歉的僞代碼)布爾數組的所有組合
說我們有布爾,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