搶數遊戲及其演繹

經典的搶數遊戲,即:

兩個人1開始輪流報數,每人每次可加1或2,誰先報到30,誰就勝利。

本來想自己寫的,但是發現已經有人總結出來了:經典的搶數遊戲

不過我還是把我們的思路說一下吧:

1. 基本方法

很顯然,對於每次加1或者2,最終數到30來說,可以逆推:

甲想要數到30,則必須讓乙只能數到28或29,則甲前一次應數到27;
甲想要數到27,則必須讓乙只能數到25或26,則甲前一次應數到24;
……
甲想要數到6,則必須讓乙只能數到4或5,則甲前一次應數到3;
甲想要數到3,則必須讓乙只能數到1或2,即乙先報。

很明顯,對於這題,後報數的人有必勝策略。

總結一下經驗:
必勝策略中,必須要報到3,6,9,……,24,27才能報到30。

而這些關鍵數字都是(1 + 2 =)3 的倍數。這是不是個巧合呢?

2. 演繹一下

可以試着演繹一下,每次可加1,2,3,還是要數到30,試一試:

甲想要數到30,則必須讓乙只能數到27、28或29,則甲前一次應數到26;
甲想要數到26,則必須讓乙只能數到23、24或25,則甲前一次應數到22;
……
甲想要數到6,則必須讓乙只能數到3、4或5,則甲前一次應數到2;

很明顯,對於這題,先報數的人有必勝策略。
顯然,關鍵數字是:2,6,10,……,22,26,而(1 + 3 =)4並不是這些數的因子,看來真的只是個巧合?
不不不,君且安坐,聽我一言:

仔細觀察,所有關鍵數的差都是4!

那麼,我們可以試着歸納一下:

爲了方便,稱可加的最小數字爲 s, 最大數字是 t,其和 s + t = f,最終數字是end

則爲了搶到最終的end,必勝策略就是搶先數到與end的差值爲f的倍數的那些關鍵字。

3. 推廣一下

現在有了這個歸納,可以試着推廣一下。
現在令每次可加2或3,注意,這裏可加的最小數不再是1,而是2,還是數到30:

s = 2
t = 3
f = s + t = 5
則需要搶到 25, 20, 15, 10, 5.

後數者有必勝策略。

4. 終極必殺

那麼,既然我們知道了這個策略,怎麼能迅速判斷出先數還是後數才能必勝呢?
很簡單,再總結一下:

對於可加12,先數到3030 / (1+2) = 100, 後數必勝;
對於可加123,先數到3030 / (1+3) = 72,  先數必勝;
對於可加23,先數到3030 / (2+3) = 50,  後數必勝;
# 爲了對比,再加幾個:
對於可加123,先數到3327 / (1+3) = 63,  先數必勝;

可見:

對於最終數 end 是 (s + t =)f 的整數倍的情況,後報數有必勝策略,策略就是一直佔據關鍵數,即與 end 的差值是 f 的整數倍的數字;
而對於最終數 end 不是(s + t =)f的整數倍的情況,先報數有必勝策略,策略就是先數到餘數,這樣下一次輪到自己的時候,就能佔據關鍵數,即與 end 的差值是 f 的整數倍的數字。(這樣看來,餘數其實也可以看做關鍵數。)

簡單測試一下:

oukohou:  hey man, 我們來玩數字遊戲吧,每次可加234,誰先數到20誰贏;
ccslience:yeah, why not.(同時心裏暗算:2+4=620/6=32,恩我要先數),I begin first--2;
oukohou:   5;
ccslience:8;(key number)
oukohou:  10;
ccslience:14;(key number)
oukohou:  16;
ccslience:20。Victory!
oukohou:  well, you really smart……
ccslience:haha~~(同時心裏決定給這篇博客點個大大的贊~)

這樣,下次和小夥伴玩的時候,就能成竹在胸勝券在握鎮定自若地決定自己是先數還是後數啦~

5. 版權所屬

注意到開頭的時候我寫的是:

不過我還是把我們的思路說一下吧:

之所以說“我們”,這個搶數遊戲,其實是國慶出去玩的時候,和我家ccslience一起玩搶數遊戲的時候慢慢總結出來的。
真好。
hello there, ccslience.

與君相遇知何處,兩葉浮萍大海中。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章