異或與對稱差

2021-06-22 13:44:52 字數 1525 閱讀 1964

a在離散數學裡用△

表示異或運算,用⊕表示兩個集合的對稱差運算。而在集合論裡面用△來表示對稱差,在上學期學的數字邏輯裡面⊕表示異或運算。這些一樣的符號在不同科目裡面表示不一樣的運算,一樣的運算在不同科目裡面用不同的符號表示,這將引起極大地混亂。這個時候直覺應該告訴我們,對稱差跟異或有一定的關係。它們能扯上關係嗎?其實在本質上它們是一樣的。或者說在布林代數裡面的異或就是在集合運算的對稱差。為了比較這兩種運算,下面用的討論中,用△來表示對稱差,⊕表示異或。

下面是兩個運算性質的比較,這能很好的說明它們就是同乙個東西,只是教科書永遠都要讓我們認為它們是不同的東西。

1.首先都看看這兩個運算滿足什麼性質。

最重要的是交換律和結合律。即

a△b=b△a

,(a△b)

△c=a△(b

△c),

a⊕b=b⊕a,  (a⊕b)⊕c=a⊕(b⊕c);

其次是它們都滿足這個性質:

a△a=∅,

a⊕a=0;

2.  

a△(a

△b)=b,

a⊕(a⊕b)=b

3.如果a

△b=c,那麼a

△c=b,b

△c=a;

如果a⊕b=c,那麼

a⊕c=b,b⊕c=a;

就是說:如果a

△b=c

,那麼a,b,c

任何兩個運算都等於剩下的那乙個。

如果a⊕b=c,那麼

a,b,c

任何兩個運算都等於剩下的那乙個。 4.

作為性質3

的推廣:

如果,那麼中任何n-1

個運算結果都等於剩下的那乙個。

如果,那麼中任何n-1

個運算結果都等於剩下的那乙個。(事實上,這裡不一定非零即一,可以推廣到任何兩個正整數,異或就推廣為按位異或)。

性質4,其實在我們高中的時候就已經接觸過類似的東西了。那就是三角形的垂心。任何三個不共線的頂點均能連成乙個三角形,這個三角形有乙個垂心,垂心跟三個頂點組成四個頂點,這四個頂點中任何三個頂點連成的三角形的垂心是剩下的那個點。說得有點繞。。。意思就是這四個點中任意三個點均以第四個點為垂心。

性質4是很有用的乙個運算,張金上課時就提過,資料的備份與恢復就是依據這個原理進行的。下面是這個原理:如果有

n個存滿資料的伺服器,如何對這些資料進行

backup

呢?最簡單的方法就是準備

n個伺服器,分別備份原來

n個伺服器的資料,但是這是很耗資源的一種方式。有沒有資源節約型的方式呢?哈哈,只需要乙個伺服器就

ok了,怎麼弄呢?

把那n個伺服器的資料按位異或結果按位放到這個伺服器上,如果一旦其中任何乙個伺服器資料丟失,就可以用剩下的

n個伺服器的資料按位異或運算生成,這樣就實現了一台機器對多台機器的資料進行備份。當然了,如果有兩個伺服器或者更多的伺服器資料丟失的話,這種方法就沒轍了。通常這種情況不會發生,只要把這些伺服器在地理上分隔,一般的大災難蔓延的距離就幾百公里。。兩個相隔較遠的地方的伺服器同時出事的可能性太小了。因此,可以通過這樣的方式備份。這也是數學應用於生活的乙個例子。

異或 與 非 或

1.異或 運算子 不同為1,相同為0.輸入 運算子 輸入 結果 1 00 1 10 0 00 0 11 2.與 運算子 在兩個結果同時為1時 結果才為1,否則全部為0.輸入 運算子 輸入 結果 1 01 1 10 0 00 0 11 如 3 5 11 101 001 1 2.取乙個數中指定位 方法 ...

異或,與,或運算

參加運算的兩個資料,按二進位制位進行 與 運算。運算規則 0 0 0 0 1 0 1 0 0 1 1 1 即 兩位同時為 1 結果才為 1 否則為0 例如 3 5 即 0000 0011 0000 0101 0000 0001 因此,3 5的值得1。例如 9 5 即 0000 1001 9的二進位制...

異或與網路編碼

找出100個數中沒有被選中的乙個,利用了異或的特點,相同得0,相異得1,與0異或得自己。所以a xor b xor a b,這樣他的演算法很快得出了缺失的乙個數。最近聽到某教授大談網路編碼,聽不懂講什麼,他只舉了個例子,於是想到了上面看到的演算法。這是他所說的乙個簡單例子,機器1與機器2通訊,需要伺...