漫畫:有趣的【海盜】問題

 小灰 程序員小灰 

     

圖片

圖片



—————  次日  —————程序員



圖片

圖片

圖片

圖片


圖片


海盜分金幣問題:app


5個海盜,得到了100枚金幣,因而他們要商量一個方法來分配金幣。商議方式以下:ide


1. 由5個海盜輪流提出分配方案。spa


2. 若是超過半數海盜(包括提出者)贊成該方案,則按照該方案分配。3d


3. 若是贊成該方案的人數(包括提出者)小於等於半數,則提出者要被扔到海里餵魚,剩下的海盜繼續商議分配。orm


4. 海盜們都是絕對理性的,以本身儘量多得到金幣爲目的。可是在收益相等的狀況下,會傾向把提出者扔到海里。blog


問:第一個海盜應該提出怎樣的分配方案,才能保證本身既不被扔到海里,又能使本身利益最大化?遞歸


圖片



舉一個栗子:圖片


此時第一個海盜來提議分配方案,他說:ci

我要100枚金幣,大家其餘人一個金幣也沒有!


顯然,其餘小夥伴一致反對,結果第一個提出者被扔到了海里。


圖片


接下來輪到第二個海盜提出分配方案,他說:

我只要1個金幣,剩下3個小夥伴每人33個金幣!


第三個海盜反對,剩下兩個小夥伴贊成,贊成者超過了半數(4 : 1),因而按照這個方法執行了分配。


圖片

圖片


圖片


圖片


圖片


圖片


圖片

圖片



————————————



圖片

圖片


圖片


圖片



圖片



圖片


圖片


圖片



如何利用遞歸思想來簡化問題呢?讓咱們來詳細分析一下,後文把五個海盜簡稱爲老1、老2、老3、老4、老五。

老一在提出分配方案的時候,不妨這樣思考:

若是我被扔到海里了,剩下4個海盜,此時老二的最優分配方案是什麼呢?

我只要在老二的分配方案上稍微增長一點,就能贏得更多的支持。


老二在提出分配方案的時候,也會這樣思考:

若是我被扔到海里了,剩下3個海盜,此時老三的最優分配方案是什麼呢?

我只要在老三的分配方案上稍微增長一點,就能贏得更多的支持。


老三在提出分配方案的時候,仍是會這樣思考:

若是我被扔到海里了,剩下2個海盜,此時老四的最優分配方案是什麼呢?

我只要在老四的分配方案上稍微增長一點,就能贏得更多的支持。


整個遞歸過程,就像下圖同樣:


圖片


這個遞歸過程到何時截止呢?剩下兩我的爲止。


想一想看,當剩下兩我的的時候,是什麼情形?


此時老四沒有任何選擇!不管他如何分配,哪怕把100枚金幣都給老五,老五仍然能夠反對,致使老四被扔到海里,金幣全歸老五全部。


圖片



由此,老三心想:老四沒有最優決策,因此不管我提出什麼要求,老四都必定會贊成,而老五必定不一樣意。


因爲只要超過半數贊成就能夠執行分配,因此老三的最優策略以下:



圖片



接下來,老二暗自尋思:若是沒有我,老三能得到100枚金幣,因此不管如何不會贊成我。但我能夠設法「籠絡」老四和老五,造成 3 : 1 的局面。


在老三的「淫威」下,他們本來一個金幣都得不到。我給他們一人一枚金幣,好過由老三來分配,因此他們確定會贊成。


所以,老二的最優策略以下:


圖片



終於輪到老一了,老一內心琢磨:若是沒有我,老二能得到98枚金幣,我總不能分給他多於98枚,索性放棄他,只要剩下三人中籠絡到兩人,造成 3 : 2 的局面便可。


要籠絡誰呢?以老二的策略,老三得不到金幣,因此老三最好「伺候」。我給老三1枚,老三必定贊成。


至於老四和老五,原本能夠獲得1枚,因此我必須比老二給的多,才能贏得支持。但我又不必同時籠絡他倆,要麼給老四兩枚金幣,放棄老五,要麼給老五兩枚金幣,放棄老四。


所以,老一的最優策略以下:


圖片


圖片


圖片

圖片


圖片

相關文章
相關標籤/搜索