2017-02-21 11 views
1

n個の異なる番号が与えられているとします。これらの番号の間には隙間があります。すべての数値をXORすると、得られる結果は、そのn個の数値にならないことが保証されますか?あなたは以下の対位法を検討した後など、配列の最初の数が2番目にXOR演算され、その結果が、第3回とXOR演算されるだろうことを意味と仮定すると、n個の異なる番号の排他的論理和は、常にn個の数値の範囲外の番号ですか?

答えて

2

:バイナリXORを使用

[1,2,6,4]

、ビット表現下記参照:

100 XOR 010 = 110

110 XOR 01アレイ内の全ての数の1 = 101

101 XOR 001 = 100

XORは、配列内の最初の数に等しいです。

+3

順と実装によるXOR演算の可換性と結合性に問題はありません:Mは、任意のビット位置に1bitsの数が偶数になる性質を持っています。しかし、良い例です。 – Paul

3

0b00 XOR 0b01 XOR 0b10 XOR 0b11 == 0b00

1

番号0は、この文脈ではかなり興味深い形質を持っている:

a xor 0 = a, a != 0 

これは、すでに質問への答えの半分である:
任意のセットの内容をXOR-INGの{a, 0}, a != 0結果としてaが得られる。したがって、答えはノーです。

これは、さらに拡大することができる:特性M = N \ {a}xor(M) = 0有するサブセットMが存在番号Nの任意のセットについて
xor(N) = aが成り立ちます。

N = {100, 010, 001, 011} 
a = 100 
M = {010, 001, 011} 

    M: 0 1 0 
     0 0 1 
     0 1 1 
count: 0 2 2 

xor(N) = 100 
関連する問題