(算法)游戲必勝策略


題目:

1、游戲1:

有兩堆硬幣,數量不定(大於0),兩個人進行游戲,每個人每次可以從任意一堆取任意數量的硬幣(大於0),誰拿走了最后的硬幣即為勝者。

2、游戲2:

一個盒子,里面有一定數量(大於0)的巧克力和一根辣椒 ,兩個人進行游戲,每個人每次可以從中拿出1或2或3顆巧克力,辣椒只能最后拿,誰最后拿走了辣椒就得吃掉她,也即輸了。

思路:

先提供一下答案:

游戲1:

如果兩堆硬幣數量相等,則讓對方先取,然后再自己取,取出數量多的那一堆的硬幣,使得兩堆硬幣數量相等,依次進行。

如果兩堆硬幣數量不等,則自己先取,取出數量多的那一堆的硬幣,使得兩堆硬幣數量相等,然后再讓對方取,依次進行。

游戲2:

如果巧克力數量為4的倍數,則讓對方先取,然后再自己取,取的數量為(4-對方取的數量),依次進行。

如果巧克力數量不是4的倍數,則讓自己先取,取的數量為(巧克力數量%4),然后再讓對方取,然后再自己取,取的數量為(4-對方取的數量),依次進行。

 

策略歸納:

這兩個游戲有個共同點:就是要找到一個平衡點。

如果初始狀態就是平衡的,那么就由對方先來,讓他打破平衡,然后自己再來維持平衡。

如果初始狀態不是平衡的,那么就由自己先來,維持平衡,然后讓對方打破,接着自己再去維持平衡。

游戲1的平衡點:兩堆硬幣數量相等;

游戲2的平衡點:巧克力的數量為4的倍數;

找到了平衡點,就可以確定游戲的優先順序和每一步的策略,必勝者的策略就是不斷地去維持平衡。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM