日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

布尔代数入门

發布時間:2023/12/16 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 布尔代数入门 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

布爾代數是計算機的基礎。沒有它,就不會有計算機。

布爾代數發展到今天,已經非常抽象,但是它的核心思想很簡單。本文幫助你理解布爾代數,以及為什么它促成了計算機的誕生。

我依據的是《編碼的奧妙》的第十章。這是一本好書,強烈推薦。

一、數理邏輯的起源

19世紀早期,英國數學家喬治·布爾(George Boole,1815-1864)突發奇想:人的思想能不能用數學表達?

此前,數學只用于計算,沒有人意識到,數學還能表達人的邏輯思維。

兩千年來,哲學書都是用文字寫的。比如,最著名的三段論:

所有人都是要死的,?
蘇格拉底是人,?
所以,蘇格拉底是要死的。

喬治·布爾認為,這種推理可以用數學表達,也就是說,哲學書完全可以用數學寫。這就是數理邏輯的起源。

二、集合論

喬治·布爾發明的工具,叫做"集合論"(Set theory)。他認為,邏輯思維的基礎是一個個集合(Set),每一個命題表達的都是集合之間的關系。

比如,所有人類組成一個集合R,所有會死的東西組成一個集合D。

所有人都是要死的

集合論的寫法就是:

R X D = R

集合之間最基本的關系是并集和交集。乘號(X)表示交集,加號(+)表示并集。上面這個式子的意思是,R與D的交集就是R。

同樣的,蘇格拉底也是一個集合S,這個集合里面只有蘇格拉底一個成員。

蘇格拉底是人?
// 等同于?
S X R = S

上面式子的意思是,蘇格拉底與人類的交集,就是蘇格拉底。

將第一個式子代入第二個式子,就得到了結論。

S X (R X D)?
= (S X R) X D?
= S X D?
= S

這個式子的意思是,蘇格拉底與會死的東西的交集,就是蘇格拉底,即蘇格拉底也屬于會死的東西。

三、集合的運算法則

前面的三段論比較容易,一眼就能看出結論。但是,有些三段輪比較復雜,不容易立即反應過來。

請看下面這兩句話。

"鴨嘴獸是卵生的哺乳動物。鴨嘴獸是澳洲的動物。"

你能一眼得到結論嗎?

鴨嘴獸 X 卵生 = 鴨嘴獸?
鴨嘴獸 x 澳洲 = 鴨嘴獸

將第一個式子代入第二個,就會得到:

鴨嘴獸 X 卵生 x 澳洲 = 鴨嘴獸?
// 相當于?
卵生 x 澳洲 = 鴨嘴獸 + 其他

因此,結論就是"有的卵生動物是澳洲的動物",或者"有的澳洲的動物是卵生動物"。

還有更不直觀的三段論。

"哲學家都是有邏輯頭腦的,一個沒有邏輯頭腦的人總是很頑固。"

請問結論是什么?

這道題會用到新的概念:全集和空集。集合A和所有不屬于它的元素(記作-A)構成全集(I),這時A和-A的交集就是一個空集(0)。

A + (-A) = I?
A X (-A) = 0

因此,有下面的公式。

B?
= B X I?
= B X (A + -A)?
= B X A + B X (-A)

回到上面那道題。

哲學家 X 邏輯 = 哲學家?
無邏輯 X 頑固 = 無邏輯

根據第一個命題,可以得到下面的結論。

哲學家 X 無邏輯?
= (哲學家 X 邏輯) X 無邏輯?
= 哲學家 X (邏輯 X 無邏輯)?
= 哲學家 X 0?
= 0

即哲學家與沒有邏輯的人的交集,是一個空集。

根據第二個命題,可以得到下面的結論。

無邏輯 X 頑固?
= 無邏輯 X 頑固 X (哲學家 + 非哲學家)?
= 無邏輯 X 頑固 X 哲學家 + 無邏輯 X 頑固 X 非哲學家?
= 0 X 頑固 + 無邏輯 X 頑固 X 非哲學家?
= 無邏輯 X 頑固 X 非哲學家?
= 無邏輯

也就是說,最終的結論如下。

無邏輯 X 頑固 X 非哲學家 = 無邏輯?
// 相當于?
頑固 X 非哲學家 = 無邏輯 + 其他

結論就是頑固的人與非哲學家之間有交集。通俗的表達就是:一些頑固的人,不是哲學家,或者一些不是哲學家的人,很頑固。

由此可見,集合論可以幫助我們得到直覺無法得到的結論,保證推理過程正確,比文字推導更可靠。

四、 集合論到布爾代數

既然命題可以用集合論表達,那么邏輯推導無非就是一系列集合運算。

由于集合運算的結果還是集合,那么通過判斷個體是否屬于指定集合,就可以計算命題的真偽。

一名顧客走進寵物店,對店員說:"我想要一只公貓,白色或黃色均可;或者一只母貓,除了白色,其他顏色均可;或者只要是黑貓,我也要。"

這名顧客的要求用集合論表達,就是下面的式子。

公貓 X (白色 + 黃色)?
+ 母貓 X 非白色?
+ 黑貓

店員拿出一只灰色的公貓,請問是否滿足要求?

布爾代數規定,個體屬于某個集合用1表示,不屬于就用0表示。 灰色的公貓屬于公貓集合,就是1,不屬于白色集合,就是0。

上面的表達式變成下面這樣。

1 X (0 + 0)?
+ 0 X 1?
+ 0?
= 0

因此,就得到結論,灰色的公貓不滿足要求。

這就是布爾代數:計算命題真偽的數學方法。

五、布爾代數的運算法則

布爾代數的運算法則與集合論很像。

交集的運算法則如下。

1 X 1 = 1?
1 X 0 = 0?
0 X 0 = 0

并集的運算法則如下。

1 + 1 = 1?
1 + 0 = 1?
0 + 0 = 0

集合論可以描述邏輯推理過程,布爾代數可以判斷某個命題是否符合這個過程。人類的推理和判斷,因此就變成了數學運算。

20世紀初,英國科學家香農指出,布爾代數可以用來描述電路,或者說,電路可以模擬布爾代數。于是,人類的推理和判斷,就可以用電路實現了。這就是計算機的實現基礎。

六、布爾代數的局限

雖然布爾代數可以判斷命題真偽,但是無法取代人類的理性思維。原因是它有一個局限。

它必須依據一個或幾個已經明確知道真偽的命題,才能做出判斷。比如,只有知道"所有人都會死"這個命題是真的,才能得出結論"蘇格拉底會死"。

布爾代數只能保證推理過程正確,無法保證推理所依據的前提是否正確。如果前提是錯的,正確的推理也會得到錯誤的結果。而前提的真偽要由科學實驗和觀察來決定,布爾代數無能為力。

(完)


原文鏈接:http://www.ruanyifeng.com/blog/2016/08/boolean-algebra.html



總結

以上是生活随笔為你收集整理的布尔代数入门的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。