關於取火柴棒問題取勝方法的一些思考 簡述

2021-07-02 22:35:53 字數 1945 閱讀 6660

取火柴棒遊戲的問題敘述:

桌上有n根火柴棒,甲乙兩人按照如下規則輪流取走這些火柴棒:

1.每次只允許取走1~2根火柴棒;

2.最後一次取走火柴棒的人獲勝;

取勝方法:

若甲先取,且甲想要取勝,那麼可以考慮如下一種策略(我們姑且就稱之為策略a吧):

甲先取,之後乙取,若乙取1個火柴棒,那麼之後甲就取2個火柴棒;若乙取2個火柴棒,則甲取1個火柴棒,總之就是保證甲+乙=3,那麼,就產生了如下3種情況:

1)n=3k+1,k是整數:

這種情況下,甲要取勝,方法為:先取1個火柴棒,那麼還剩下3k個火柴棒,之後採取策略a.這樣,就能保證每回合都取走3個,且甲取後一次.以此類推,甲就一定能取勝.

2)n=3k+2,k是整數:

這種情況下,甲要取勝,方法為:先取2個火柴棒,那麼還剩下3k個火柴棒,之後採取策略a.這樣,就能保證每回合都取走3個,且甲取後一次.以此類推,甲就一定能取勝.

3)n=3k,k是整數;

這種情況下,甲要麼先取1個,要麼先取2個.剩下的就是:3k-1或者3k-2;而3k-1=(3k+2)-3;3k-2=(3k+1)-3在這種情況下,甲是必輸的.因為這個問題可以等價於乙先取3k-1或3k-2個火柴棒,也就是3k+2或3k+1個火柴棒,這與上述1),2)的情況是一樣的.所以,這種情況下,甲必輸

總結:在甲先取的情況下,勝負如下

1)若n=3k+1或者n=3k+2

甲採取策略a必勝

2)若n=3k

乙一定能用策略a取得勝利,亦即乙必勝.

進一步推廣取火柴棒問題,描述如下:

桌上有n個火柴棒,甲乙兩人按照如下規則輪流取走這些火柴棒:

1)每次只允許取走1~m個火柴棒;

2)最後一次取走火柴棒的人獲勝;

我們可以從上面的推理中類推出此問題的解,取勝方法策略為(我們姑且稱之為策略b):

若甲先取,且甲想取勝

甲先取若干個火柴棒,之後乙取,若乙取1個火柴棒,那麼之後甲就取m個火柴棒;若乙取2個火柴棒,則甲取m-1個火柴棒......總之就是保證甲+乙=m+1,那麼,就產生了如下m+1種情況:

1)n=(m+1)*k+1,k是整數;

甲先取1個火柴棒,那麼還剩下(m+1)*k個火柴棒,之後採取策略b,這樣,就能保證每回合都取走m+1個,且甲取後一次.以此類推,甲就一定能取勝.

2)n=(m+1)*k+2,k是整數:

甲先取2個火柴棒,那麼還剩下(m+1)*k個火柴棒,之後採取策略b,

這樣,就能保證每回合都取走m+1個,且甲取後一次.以此類推,甲就一定能取勝.

......

......

m)n=(m+1)*k+m,k是整數:

甲先取m個火柴棒,那麼還剩下(m+1)*k個火柴棒,之後採取策略b,

這樣,就能保證每回合都取走m+1個,且甲取後一次.以此類推,甲就一定能取勝.

m+1)n=(m+1)*k,k是整數:

這種情況下,甲要麼先取1個,要麼先取2個,要麼先取3個,......要麼先取m個,那麼分別還剩下:(m+1)*k-1,(m+1)*k-2,(m+1)*k-3,......,(m+1)*k-m個火柴棒,亦即[(m+1)*k+m]-(m+1),......,[(m+1)*k+1]-(m+1)個火柴棒.這相當於上面的1)~m)這m種情況,只不過先取的是乙,這種情況下,乙必勝.

總結:

甲先取,且甲想取勝

1)若n=(m+1)*k+1,(m+1)*k+2,......,(m+1)*k+m

採取上述策略,甲一定能取得勝利

2)若n=(m+1)*k

乙採取上述策略,乙一定能取得勝利.

從上面的結論,我們可以看到,只有一種情況下,乙是必勝的,那就是n=(m+1)*k,其餘都是甲必勝,可見,甲必勝的概率隨著m的增加而不斷變大,同時,我們也可以看出,先手者勝率高.

一些關於測試的問題

1.有一根不均勻的繩全部燒完用1個小時,現在有很多材質,規格完全相同的繩,怎麼用燒繩法計時1個小時15分鐘?我的回答 用一根繩做標記,另一根繩,兩頭開始燒,燒到一塊的位置,表在第一根繩上,這是半個小時的時間同理找到1 4個小時的位置,進而可以得到乙個小時15分鐘啊 2.什麼是冒煙測試?冒煙測試 sm...

關於一些空指標異常的一些問題

listschedultcustomproductids new arraylist if schedultcustomproductids null 這樣是不能阻擋getbyids 方法的執行的 size 0和null是不同的,new完以後,是會給他分配記憶體的,是size 0,因為給他分記憶體了...

關於JS一些驗證郵箱的一些問題

if type email w w w ig strreg a za z0 9 a za z0 9 a za z0 9 strreg 0 9a za z 0 9a za z 0 9a za z 0 9a za z strreg a za z0 9 a za z0 9 a za z0 9 a za z...