Python中的XOR矩阵乘法

3

我不确定如何使用XOR加法来相乘两个矩阵。例如,在这里:

>>> 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和6个索引:

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

有什么建议吗?


z.dot(b) % 2 怎么样? - Blckknght
我认为那应该可以,谢谢! - user3562967
1个回答

5

正如我之前所评论的,你可以使用z.dot(b) % 2来获取你想要的值。这是因为链式的xor等同于模2加法。也就是说,如果1的数量是奇数,则结果为1,如果偶数则结果为0


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接