什么是異或(XOR)
異或:可以簡(jiǎn)稱Xor春锋,可以用數(shù)學(xué)符號(hào)⊕表示,計(jì)算機(jī)就一般可以用^表示了知牌。
異或運(yùn)算主要指二進(jìn)制中徘跪。
0⊕0=0,0⊕1=1
1⊕0=1,1⊕1=0
可以看成是兩個(gè)值相同得0,不同得1岔绸。
另一種求值方法就是兩數(shù)相加,但是不進(jìn)位,如1⊕1=0,可以看作1+1=10,但是不進(jìn)位季俩,所以1⊕1=0。
關(guān)于一些運(yùn)算法則
1. a ⊕ a = 0
2. a ⊕ b = b ⊕ a
3. a ⊕b ⊕ c = a ⊕ (b ⊕ c) = (a ⊕ b) ⊕ c;
4. d = a ⊕ b ⊕ c? 可以推出 a = d ⊕ b ⊕ c.
5. a ⊕ b ⊕ a = b.
我舉例說(shuō)明一下法則5的運(yùn)用梅掠。
例題:已知一串只含大于0的int型整數(shù)的數(shù)字酌住,其中大部分?jǐn)?shù)都出現(xiàn)了兩次店归,但只有一個(gè)數(shù)只出現(xiàn)了一次,求這個(gè)數(shù)的值酪我。
?? 如5 5 3 2 2 1 3消痛,數(shù)字5,3都哭,2都出現(xiàn)了兩次秩伞,而只有1只出現(xiàn)了一次,所以這串?dāng)?shù)字的答案為1欺矫。又如3,4,5,5,4,2,3 的答案為2纱新。
對(duì)于這題,可以使用hash數(shù)組汇陆,但可能會(huì)使用過(guò)大的空間怒炸。如果用異或就簡(jiǎn)單許多了带饱。因?yàn)閍⊕a=0; 0⊕b=b;a⊕b⊕a=b;
如5 5 3 2 2 1 3求異或? 5 ⊕ 5 ⊕ 3 ⊕ 2 ⊕ 2 ⊕ 1 ⊕ 3 = 5 ⊕ 5 ⊕
3 ⊕ 3 ⊕ 2 ⊕ 2 ⊕ 1 = 0 ⊕ 0 ⊕ 0 ⊕ 1 =
1;數(shù)列中出現(xiàn)兩次的數(shù)5,3,2在異或都將得出0毡代,因此得出只出現(xiàn)一次的數(shù)字1。
這題只要將所有數(shù)字異或即可得只出現(xiàn)一次的數(shù)字勺疼。而且這方法極大的節(jié)約了空間和時(shí)間教寂。
為什么感知機(jī)不能解決異或(XOR)
什么是感知器(單層神經(jīng)網(wǎng)絡(luò))
Rosenblatt[1958]最早提出可以模擬人類(lèi)感知能力的數(shù)學(xué)模型,并稱之為感知器(Perceptron)执庐,并提出了一種接近于人類(lèi)學(xué)習(xí)過(guò)程(迭代酪耕、試錯(cuò))的學(xué)習(xí)算法。
感知器的原型是--神經(jīng)元模型轨淌。1943年迂烁,由McCulloch和Pitts提出,所以也被叫做“M-P神經(jīng)元模型”递鹉。
1.本神經(jīng)元接受到來(lái)自N個(gè)外界(或者其他神經(jīng)元)的輸入信號(hào)盟步,
2.這些輸入信號(hào)通過(guò)帶權(quán)重的連接進(jìn)行傳遞,給本神經(jīng)元躏结,
3.本神經(jīng)元接收到的總輸入將于本神經(jīng)元的閾值進(jìn)行比較却盘。
4.比較后,通過(guò)"激活函數(shù)"處理媳拴,產(chǎn)生輸出黄橘。
異或問(wèn)題
在二維分布表現(xiàn)為
這樣可以把異或問(wèn)題表現(xiàn)為點(diǎn),在二維平面上的分布問(wèn)題屈溉。
感知機(jī)的作用是塞关,在平面上畫(huà)一條線,線的一邊為一類(lèi)子巾。如果感知機(jī)只有兩個(gè)輸入帆赢,就是在二維平面上驶睦,劃線然后分類(lèi)。
如上圖所示匿醒,在"異或"問(wèn)題上找不到一條直線能把X和O分開(kāi)场航,就是說(shuō)這是一個(gè)不能用直線分類(lèi)的問(wèn)題,這類(lèi)問(wèn)題叫非線性問(wèn)題廉羔。同理溉痢,"同或"問(wèn)題一樣不能解決。
所謂感知機(jī)(單層神經(jīng)網(wǎng)絡(luò))不能解決異或問(wèn)題就是不能解決畫(huà)一條線在平面實(shí)現(xiàn)所有分類(lèi)的問(wèn)題憋他。