1. 程式人生 > >海盜分贓問題-----簡化問題,分而治之

海盜分贓問題-----簡化問題,分而治之

目錄

問題描述:

問題分析:

總結:

問題描述:

        五個極其聰明的海盜搶到100顆寶石,每一顆寶石都一樣大小和價值連城。他們決定以抽籤投票的方式來分配這些寶石:有(1、2、3、4、5)五個號碼,每人抽取一個。首先,由1號提出分配方案,然後大家舉手表決,當且僅當超過半數的人同意時,按照他的分配方案 進行分配,否則將被扔進海里喂鯊魚。如果1號死後,再由2號提出分配方案,規則如前所述,以此類推。

問:第一個海盜提出怎樣的分配方案才能使自己的收益最大化?為什麼?

問題分析:

  • 每個海盜都及其聰明       ---->       每個海盜都會做出對自己做大利益化的選擇
  • 每顆寶石都價值連城       ---->       即使只得到一顆寶石也會成為富翁
  • 當且僅當超過半數人同意時即通過        ----->        必須要贏得半數以上的人支援才行
  • 金錢準則                        ----->       財不外露,越少人知道越好
  • 人性弱點                        ----->       活著總比死了好
  • 此推理模型只在邏輯層面進行推理,不牽扯到深層次的社會工程學問題。

問題求解:(簡化問題,分而治之)

對於五個海盜分贓時考慮的情況相對比較複雜,可以先假設只有兩或三或四個海盜來按指定的規則來分配。

假設有兩個海盜進行分贓:(4號和5號)----(為了與原題內容相互對應,便於理解我們使用4號和5號標籤來標識這兩個海盜,下同)

由於表決需要半數以上的人支援才能通過,5號又有心讓4號被喂鯊魚,所以無論4號提出什麼方案都不能逃脫被喂鯊魚的命運。

則此種情況下,5號會先殺死4號自己獨佔100課寶石。

也即:4號(die)    0 顆

           5號           100顆

假設有三個海盜進行分贓:(3號、4號和5號)

如上述分析,若3號被喂鯊魚,則4號也逃不過被喂鯊魚的命運,所以無論3號提出什麼樣的分配方案,4號都會表示支援,且此時3號提出的方案會通過,也就說3號可以獨佔100顆寶石。此時的表決為2:1,表決通過。

也即:3號           100顆

           4號            0顆

           5號            0顆

假設有四個海盜進行分贓:(2號、3號、4號和5號)

如上所述,若2號被喂鯊魚,則4號和5號也分不到寶石,所以2號只需向4號和5號施加一點小惠,即可得到最大的收益。也就是說2號給4號和5號各一顆寶石,自己獨佔剩下的寶石,此時的表決為3:1,表決通過。

也即:2號            98顆

          3號             0顆

          4號             1顆

          5號             1顆

則當有五個海盜進行分贓的時候:(1號、2號、3號、4號和5號)

如上所述,若1號死後,2號可以得到98顆寶石,所以2號不會同意1號的任何方案。

                   若1號死後,由2號進行分配時,3號將得不到寶石,所以建議向3號實惠。

                   若1號死後,由2號進行分配時,4號和5號的被分配到的寶石一樣,在此再贏得一票支援,1號就能以3:2的結果得到最大的收益。

也即:1號       97顆

           2號       0顆

           3號       1顆

           4號        2顆

           5號        0顆

總結:

        對於一些比較複雜的問題不容易很快找到答案時,嘗試將其劃分成一個個很小的模組,但需要保證每一塊的整體模式是不變的或相似的,然後從底層開始剖析,直至剖析出問題的答案時,即此題的正解。此種解題的思想被稱為“簡化問題,分而治之”。