黑與白(邏輯推理)

2021-10-01 04:37:08 字數 1594 閱讀 4396

黑與白:有 a、b、c、d、e 這 5 個人,每個人額頭上都貼了一張黑或白的紙。5 人對坐,每個人都可以看到其他人額頭上紙的顏色。5 人相互觀察後,

a 說:「我看見有 3 人額頭上貼的是白紙,1 人額頭上貼的是黑紙。」

b 說:「我看見其他 4 人額頭上貼的都是黑紙」

c 說:「我看見 1 人額頭上貼的是白紙,其他 3 人額頭上貼的是黑紙」

d 說:「我看見 4 人額頭上貼的都是白紙」

e 什麼也沒說。

現在已知額頭上貼黑紙的人說的都是謊話,額頭貼白紙的人說的都是實話。問這 5 人誰的額頭上貼的是白紙,誰的額頭上貼的是黑紙?

#0為黑 假 1為白 真

for a in

range(2

):for b in

range(2

):for c in

range(2

):for d in

range(2

):for e in

range(2

):#每個都有兩種可能非真及假if(

((a and b+c+d+e==3)

or(not a and b+c+d+e!=3)

)and \

((b and a+c+d+e==0)

or(not b and a+c+d+e!=0)

)and\

((c and a+b+d+e==1)

or(not c and a+b+d+e!=1)

)and\

((d and a+b+c+e==4)

or(not d and a+b+c+e!=4)

)):#這樣寫也行

# if (((a == 1 and b + c + d + e == 3) or (a == 0 and b + c + d + e != 3)) and \

# ((b == 1 and a + c + d + e == 0) or (b == 0 and a + c + d + e != 0)) and \

# ((c == 1 and a + b + d + e == 1) or (c == 0 and a + b + d + e != 1)) and \

# ((d == 1 and a + b + c + e == 4) or (d == 0 and a + b + c + e != 4))):

k=[a,b,c,d,e]

v=["a"

,"b"

,"c"

,"d"

,"e"

]for i in

range

(len

(k))

:print

("{}白紙 "

.format

(v[i])if

(k[i]==1

)else

"{}黑紙 "

以上輸出寫的不太優雅,有更好的方法請告知。

c語言寫法

培養邏輯推理

沒有解決不了的問題,只有打不開的思路。思維一旦被限制,動再多的腦筋也跳不出固有的圈子 思路一經調換,難題往往便迎刃而解 類似數學推理我們重點關注兩點 一 盡可能多的發現屬性,現象 1 靜態的 一般擺在我們面前的我們都能注意到,但是 涉案現場的任何小細節我們都要去問為什麼,不要放過任何乙個細節背後的原...

做邏輯推理

做邏輯推理 進行邏輯推理有什麼用呢?其實是為了訓練我們的邏輯感強,思維縝密,做事周到的能力。下面是matrix67創作的下面 10 個邏輯推理問題。在每個問題中,甲 乙 丙三人各說了一句話,你需要判斷出每個人說的究竟是真話還是假話。每個問題都有唯一解。注意,與傳統的邏輯推理題 目不同,沒有任何條件告...

邏輯推理20201030

邏輯推理 題目 甲乙丙三人玩遊戲,遊戲規則如下 相互之間不能溝通的前提下,每個人寫下乙個整數,其中數字最小的且不與其他的重複的獲勝,比如 1,2,3,寫1的獲勝,2,2,3中寫3的獲勝,全部相同無人獲勝 下面是他們的發言 甲 我寫的是2 乙 我有可能獲勝 丙 我也有可能獲勝 乙 這樣的話,丙你一定不...