幾個比較有意思的邏輯問題

2022-07-16 04:30:14 字數 2762 閱讀 5552

誠實者與說謊者的問題:現有a和b兩扇門,其中有乙個是我要開啟的,即正確的門,有乙個是錯誤的門,有兩個守門員a和b,他們兩都知道正確的門和錯誤的門,他們會告訴你答案但是它他們有乙個是誠實的,有乙個是說謊的。現要求,只能問他們其中乙個人乙個問題,怎麼才能開啟正確的門。

海盜分金問題:5個海盜(abcde)搶得100枚金幣,他們按抽籤的順序依次提方案:首先由a提出分配方案,然後5人表決,投票要超過半數同意方案才被通過,否則他將被扔入大海喂鯊魚,如果上乙個人死了,就由下乙個人提出方案,繼續投票。假定「每個海盜都是絕頂聰明且很理智」,那麼「第乙個海盜提出怎樣的分配方案才能夠使自己的收益最大化?」

善變者問題:有5個人,其中有乙個是誠實的,其餘4個是善變的。善變就是對於同乙個問題,每次你問他,他都會交替的回覆你,即第一次錯誤,第二次正確,第三次錯誤...當然,第一次正確還是錯誤是不知道的。現要求:只能問兩個問題,找出誠實的人,這兩個問題,可以問同乙個人,也可以組合問不同的人。

十個人排隊帶帽子的問題:十個人排成一隊,現有黑白兩種顏色的帽子,每個人帶著其中一種顏色的帽子,每個人不知道自己的帽子的顏色,但是可以看到前面人的帽子的顏色,也能聽到後面人的說話。現在,從最後乙個人問他帽子的顏色,回答錯誤直接涼涼,回答正確可以或下來,依次向前。問:怎麼能救到更多的人??

所以無論第乙個問的人是誠實的還會說謊的,得到的答案都是錯誤的那個門,所以正確的門馬上就能知道了

這題是比較有意思的,當初的我天真的以為5人平均分,1人20就共同生存,皆大歡喜了。知道答案後才知道自己太天真了.....首先這個問題不能從a開始開始,而是應該從後往前考慮,即逆向推導,並且還要注意的乙個原則,生命誠可貴,即前提一定是自己要活下來。在前面的人一定是最慘的,因為稍有分配不慎,就會被集體投票處決,相反,第5個人一定是最安全的,因為如果前面4個人都被投票處死,那麼e就可以獨吞了如果abc都死了,那麼e一定會把d處死,因為只有兩個人,無法出現超過半數票同意決策的情況,所以d一定不會讓c死掉,所以3號的決策一定是讓自己獲得最大利益->如果ab都死的話,c的決策一定是(100,0,0).但是b如果不死呢,就不會輪到c決策了,所以b的決策一定會為自己拉到贊成票,即d和e的票,給他們一人1個,相比c的決策乙個都拿不到,d,e得到乙個也是很不錯的了,所以b的分配會是(98,0,1,1),這樣無論c同不同意,都會執行決策。好,最後到a,a一定知道bcd他們的如意算盤,所以,a會保住自己的性命,並且拿到最多的的金幣。所以a只要讓另外兩個人支援自己可以了,同時a要獲得最大利益,所以a會這樣分配(1號方案(97,0,1,2,0)或  2 號方案(97,0,1,0,2))。1、2號方案都是自己拿97,這是最大利益了,為什麼呢??1號方案給了c 1個,d 2個,這樣d一定會支援他,因為如果a死了,b的決策只會讓d自己拿到1個,d肯定拿2個利益大啊。同理,b的決策不會給c金幣,a這裡給了1個,c當然更支援a了。e不給也行,不影響最終決策通過。2號方案,(97,0,1,0,2)c的票是肯定贊成的,e這裡拿了兩個,也會贊成,b不用給,d不用給,也不影響決策通過。這裡給e乙個可以嗎??答案是不行的,因為a和b的方案都是給e乙個,所以d可以贊成a和b中的任何乙個,a為了保險,會多給d乙個。當然,不管哪個方案,a自己都會拿97個走。

第乙個問題:你是誠實的嗎??

第二個問題:根據上乙個問題的回答可分為:誰是誠實的?、誰不是誠實的?

為什麼這麼問呢?第乙個問題,因為5個人都不確定,所以問誰都一樣,但是,我們可以根據第乙個問題的回答推測出他下乙個問題回答正確型來針對性的提出第二個問題.

由於第一次提問身份不明,所以只能根據對乙個問題的回答得出下一次回答的正確性,第一次回答yes後,只能是誠實的人的回答或是善變者的第一次欺騙,那麼無論接下來繼續問什麼問題,都會得到正確答案,所以第二個問題直接問是誰就好了。如果第乙個問題回答是no,只能是善變者的的第一次正確回答,那麼下一次回答一定是錯誤的,為了將錯就錯,問他誰不是誠實的人,他一定會說出誠實的人,因為要欺騙啊,所以最終都得出誠實的人。

為什麼.5呢?因為最後乙個人只能看運氣。因為排隊順序不確定。所以大家定這樣乙個規則,最後乙個人根據前面一種帽子的數量做決策,如果黑色帽子數為奇數,則回答黑色,如果為偶數,則回答白色。當然,這個壯舉保證了前面9個人活了下來,自己只能看運氣了。如果最後乙個回答是黑色,即前9個人中有奇數個帶黑色帽子的,這下第9個人數一下前8個人的黑色帽子數,如果是奇數,那麼自己的帽子一定是白色,回答白色就行,如果黑色帽子數為偶數,那麼自己一定是黑色帽子,回答黑色就行。這時,到8號回答,他會根據第10個人的回答判斷黑色帽子的數量,在根據第9個的回答判斷黑色帽子的數量.....一直到1號

函式呼叫棧比較有意思

昨天和海洋一塊研究了下函式呼叫棧,順便寫兩句。不足或錯誤之處請包涵!理解呼叫棧最重要的兩點是 棧的結構,ebp暫存器的作用。首先要認識到這樣兩個事實 2 幾乎所有本地編譯器都會在每個函式體之前插入類似如下指令 push ebp mov ebp esp 棧底方向,高位位址 引數3 引數2 引數1 返回...

函式呼叫棧比較有意思

理解呼叫棧最重要的兩點是 棧的結構,ebp暫存器的作用。首先要認識到這樣兩個事實 2 幾乎所有本地編譯器都會在每個函式體之前插入類似如下指令 push ebp mov ebp esp 棧底方向,高位位址 引數3 引數2 引數1 返回位址 上一層 ebp ebp push ebp mov ebp es...

函式呼叫棧比較有意思

昨天和海洋一塊研究了下函式呼叫棧,順便寫兩句。不足或錯誤之處請包涵!理解呼叫棧最重要的兩點是 棧的結構,ebp暫存器的作用。首先要認識到這樣兩個事實 2 幾乎所有本地編譯器都會在每個函式體之前插入類似如下指令 push ebp mov ebp esp 棧底方向,高位位址 引數3 引數2 引數1 返回...