第790章 全面開卷
相對複雜,一時間難以分辨他是否撒謊,
稍微簡單梳理一下,
藍衣人其實陳述了兩件事,
其一,紅衣人喝了假話藥水,
其二,藍衣人不是法師,
並且這兩個陳述是選擇與排除關係,只能二選一,
所以,
假如藍衣人說的是真話,就會出現陳述一為真陳述二為假或陳述一為假陳述二為真的兩種情況,
如果藍衣人說的是假話,這會出現陳述一和陳述二同為真或陳述一和陳述二同為假的兩種情況,
至此,
相當於布爾代數中的異和運算,也就是數字電子裡邏輯運算的基礎,
同時在計算機的運行中也會用二進制的0和1代替邏輯上的真和假,
咱們也可以根據現有的信息,用類似的方式分析一下藍衣人的回答,
假設紅衣人喝了假話藥水為前提,
如果是“陳述一為真陳述二為假”這種情況,那藍衣人就是法師,
但這情況必須是在藍衣人喝了真話藥水才能實現,這樣就跟黃衣人的回答相矛盾了,所以黃衣人只能說假話,由此可以確定法師喝的是真話藥水,
但紅衣人那邊,他不能說假話,否則藍衣人就得是喝了假話藥水的法師,進而和已知條件不符,也就是可以確定紅衣人喝的是真話藥水,但這樣又會跟之前假設的前提相矛盾!
所以只能是其它可能,
畫個表格,
把對應的0和1填上去,
假設紅衣人喝的是真話藥水,
在藍衣人陳述一為假的情況下,如果陳述二也為假,那麼藍衣人就是喝了假話藥水的法師,這結論同樣與已知條件有矛盾;
所以反推,如果陳述二為真,那麼就能判定出紅衣人和藍衣人都是喝了真話藥水,並且紅衣人才是法師,
這樣就都能說得通且沒有矛盾......
好傢伙!
感覺腦瓜子有點癢!
很顯然,
這次考核涉及到邏輯學的實際應用!
還好咱們在學編程的時候有練過,
這要是根據相應條件弄小程序出來,估計一下子就可以得出正確答案。