博弈遊戲之-對稱博弈

博弈遊戲之-對稱博弈


對稱博弈

在博弈論,如果博弈的收益只依賴於選手所選擇的策略而不依賴於進行博弈的選手,這類博弈稱為對稱博弈。


小遊戲、

遊戲是這樣的:

兩個玩家用一圈n個硬幣開始遊戲。

他們依次從圈子中拿走硬幣,每次他們可以拿1〜K連續硬幣。

(想象一下,十個硬幣編號從1到10,K等於3,因為1和10是連續的,你可以拿走連續的10,1,2,但是如果2被拿走,你不能拿1,3 ,4,因為1和3不連續)

拿最後一枚硬幣的玩家贏得比賽。

假設這兩名球員總是採取最好的舉措,從不犯錯誤。

你的工作是找出誰肯定會贏得比賽,先手者還是後手者。


博弈遊戲之-對稱博弈


取勝策略

1. n<=k,肯定是先手的贏

2. K==1時,就看n的奇偶了,如果為奇,先手總是可以創造對稱棋局而取勝,反之後手的贏。

3.k!=1時,後手的總是能創造對稱的局面而取走最後的棋子。

C程序實現

if ( k == 1 && n % 2 || n <= k )

printf("先手者");

else

printf("後手者");


博弈遊戲之-對稱博弈


分享到:


相關文章: