對于類似騎士與流氓的這種邏輯思維題,除了極個別的天才能夠大腦隨便一想就知道答案,絕大多數人都要好好的推斷一會。
而
離散數學就教給了我們一種用數學方法來推導這種邏輯題,使得這些問題的難度降低不少。下面就來看下《離散數學及其應用》第六版,1.1章練習題第55題我的推導分析吧。
一個小島上住著兩類人,一類是騎士,一類是流氓,騎士只說真話,流氓只說假話,有AB兩個人,根據他們所說的話,判斷AB各自是流氓還是騎士。
a)A說:我們之間至少有一個是流氓。B什么都沒有說
b)A說:我們兩個都是騎士。B說:A是流氓。
c)A說:我是流氓或者B是騎士。B什么都沒說
d)兩個人都說:我是騎士
e)A說:我們都是流氓。B什么都沒說。
個人分析:
首先,定義命題p為A是騎士,!p代表A是流氓,q為B是騎士,!q為B是流氓a)A說的內容可以用如下數學符號表達:(!p ∨ !q)。
假設A是騎士,即p=1,說明A說的內容為真,即(!p ∨ !q)=1,因為p=1推出!p=0,所以!q=1,所有q=0,即B為流氓。過程沒有矛盾。
保險起見,再假設A是流氓,即!p=1,說明A說的內容為假,即(!p ∨ !q)=0,但是!p=1,所以(!p ∨ !q)不可能為0,所以有矛盾。
結果就是A是騎士,B為流氓
b)A說的內容:(p ∧ q),B說的內容:!p
假設A是騎士,即p=1,說明A說的內容為真,即(p ∧ q)=1,推出q=1,說明B也為騎士,那B說的話為真,就是說!p=1,即A為流氓,結論與條件矛盾,假設不對
假設A是流氓,即!p=1,說明A說的內容為假,即(p ∧ q)=0,此時q是0還是1,都符合。再從B說的話著手,因為!p=1,所以B說的話是正確的,所以q=1,B是騎士,沒有矛盾。
結果就是A是流氓,B是騎士
c)A說的內容:(!p ∨ q)
假設A是騎士,即p=1,說明A說的內容為真,即(!p ∨ q)=1,推出q=1,即說明B也為騎士,沒有矛盾。
假設A不是騎士,即!p=1,說明A說的內容為假,即(!p ∨ q)=0,但是!p=1,所以無論(!p ∨ q)是不可能為0的,所以矛盾
結果倆人都是騎士
d)A說的內容:p。B說的內容:q
假設A是騎士,即p=1,說明A說的內容為真,即p=1,與條件相符。
假設A是流氓,即!p=1,說明A說的內容為假,即p=0,此時也與條件相符。
B的判斷也一樣,所以結果是無法判斷出誰是騎士誰是流氓
e)A說的內容:(!p ∧ !q)
假設A是騎士,即p=1,說明A說的內容為真,即(!p ∧ !q)=1,因為!p=0,所以無論如何(!p ∧ !q)是不可能為0的,矛盾
假設A是流氓,即!p=1,說明A說都內容為假,即(!p ∧ !q)=0,說明!q=0,即B是騎士,沒有矛盾
結果是A是流氓,B是騎士