我正在為數(shù)組做一個按位校驗和。0^1^2^3^4^6 == 2.17^18^19^20^21^22^23^25^26^29 == 14.12^ == ?但是,有時可能存在單個值。對于單個值,數(shù)組校驗和的等效值是多少?
1 回答

紅顏莎娜
TA貢獻1842條經(jīng)驗 獲得超13個贊
總結: 對于任何 ,這就是為什么 12 的結果等于 ,即 12。X^0 == X
X
12^0
我在數(shù)學上并不精確,但對于一個操作,可能存在一個什么都不做的“中性”值:
對于加法,它是0:
X+0 == X
對于乘法,它是1:
X*1 == X
對于 AND(邏輯,按位)它是或位值 1
True
等。
您始終可以插入中性值,而無需更改結果。這意味著例如,空數(shù)字列表的總和為0,乘積為1。您自然會將該值用作 or 實現(xiàn)中的起點:sum(alist)
product(alist)
total = 0; for x in alist: total = total + x
prod = 1; for x in alist: prod = prod * x
回到你的問題,XOR的中性值為0。我們將xor寫為:
def xor(*args):
result = 0
for x in args:
result ^= x
return result
然后:
>>> xor(17,18,19,20,21,22,23,25,26,29)
14
>>> xor(0,1,2,3,4,6)
2
>>> xor()
0
>>> xor(12)
12
添加回答
舉報
0/150
提交
取消