2014-05-12 26 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