2014-05-12 28 views
2

我不確定如何使用XOR加法來乘兩個矩陣。例如,在這裏:Python中的XOR矩陣乘法

1(1) xor 0(1) xor 1(0) xor 1(1) = 0 
1(1) xor 1(1) xor 1(0) xor 0(1) = 0 
0(1) xor 1(1) xor 1(0) xor 1(1) = 0 

任何建議:

>>> b = numpy.array([[1, 0, 0, 0, 1, 1, 0], 
        [0, 1, 0, 0, 0, 1, 1], 
        [0, 0, 1, 0, 1, 1, 1], 
        [0, 0, 0, 1, 1, 0, 1]]) 
>>> z = numpy.array([1, 1, 0, 1]) 
>>> z.dot(b) 
array([1, 1, 0, 1, 2, 2, 2]) 

我想第4,第5和結果數組的第六屆指數通過計算?

+0

'z.dot(b)%2'怎麼樣? – Blckknght

+0

我認爲應該工作,謝謝! – user3562967

回答

2

正如我評論,你可以使用z.dot(b) % 2來獲得你想要的值。這是因爲鏈式xor s等同於加法mod 2.也就是說,如果1 s是奇數,結果將是1,如果是偶數,結果將是0