益智問題(拈之變形) - 拼圖

Iris avatar
By Iris
at 2009-04-22T00:02

Table of Contents

以下的想法參考 http://zzv.cc/bwxzj (版友 FACE90006 提供的網址)

如果我們把

「輪到你時,不論你可以拿幾個,只要你不拿完,且至少拿一個,你一定輸」

的點列出來,可以得到:

2 3 4 6 8 11 15 21 ...

經過觀察後發現:

2 + 6 = 8
3 + 8 = 11
4 + 11 = 15
6 + 15 = 21

也就是: f(n) = f(n-1) + f(n-4)

為了方便接下來的推論,令

f(0) = 1 , f(1) = 2 , f(2) = 3 , f(3) = 4 , f(4) = 6

f(n≧5)=f(n-1)+f(n-4)

且對於f(n) 和 f(n-4) 我們有: f(n) > 3 * f(n-4)

有了以上的基礎後,"假如"我們可以把某一個數用以下的方式表達

X = f(a1) + f(a2) + f(a3) + f(a4) + ...

且 ak ≦ a(k+1) - 4

且對於每個X,此表達方式是唯一的。

則,當我們碰到剩下X根火柴的狀況,我們就拿走 f(a1) 根火柴,

根據上面推論的結果, f(a1) < 3*f(a2)

因此,對方在下一個回合不可能拿走全部的火柴,也不可能採取和我們一樣的策略

借由這種方式,我們便可以確保對方遲早會走到先手必敗的點,並獲得勝利

====================================================
<證明1>

X = f(a1) + f(a2) + f(a3) + f(a4) + ...

且 ak ≧ a(k+1) + 4

----------------------------------------

對於 X < 10 , 上述成立

假設對於 X < m 皆成立,則當X = m時

if f(k) ≦ m < f(k+1)

則 0 ≦ m - f(k) < f(k+1) - f(k) = f(k-3)

所以:

m = f(k) + m' , which m' ≦ f(k-4)

若 m' 可寫為: f(a2) + f(a3) + ... 且 a2 , a3 ... 的關係滿足 ak ≧ a(k+1) + 4

則令 a1 = k , 必有 a2 + 4 ≦ k = a1 故 X = m 時成立

由數學歸納法得知,對所有的正整數 X 皆成立

=============================================

<證明2>

X 的表示法是唯一的
----------------------------------------------

if X = f(a1) + f(a2) + ... + f(an)

現在我們想要產生一個數列 b1 , b2 ... bm 使得 X = f(b1) + f(b2) + ... + f(bm)

令 M(k) = f(k-1) + f(k-5) + f(k-9) + ...

也就是把所有滿足 k-1 ≧ (k-1) - 4*n ≧ 0 的 f(k-1-4*n) 加起來

=> f(k) > M(k) = f(k-1) + f(k-5) + f(k-9) + ...

因此,X ≧ f(an) > M(an) 而且 M(an) 是使用所有的 f(k<an) 所可以組合出的最大數

因此,不使用f(an) 便不可能產生 X 。

同樣的,沒有f(an-1)不能表示( X-f(an) ) ... 依此類推

故 X 的表示法是唯一的

====================================================

--
Tags: 拼圖

All Comments

Iris avatar
By Iris
at 2009-04-25T04:19
100 = 76 + 21 + 3 答案是 3
Ursula avatar
By Ursula
at 2009-04-27T20:10
但我用程式跑 24 似乎也是答案..不知道有沒有盲點

益智問題(拈之變形)

Selena avatar
By Selena
at 2009-04-21T21:34
我的方法是列出所有先手必輸狀態 然後讓對手進入該狀態即可 以下為程式模擬結果 有錯歡迎糾正 先手必輸狀態有: ( 4, 1) ( 6, 1) ( 8, N andlt;= 2) (11, N andlt;= 3) (15, N andlt;= 4) (19, 1) (21, N andlt;= 6) ...

益智問題(拈之變形)

Jack avatar
By Jack
at 2009-04-21T07:26
※ 引述《supermicro (清流是要流到哪裡去?)》之銘言: : ※ [本文轉錄自 Math 看板] : 作者: sean0405 (灰) 看板: Math : 標題: 益智問題 : 時間: Sun Apr 19 11:28:02 2009 : 玩法:一堆石頭有100個,兩人輪流取石,每次每人至少取一個 ...

益智問題(拈之變形)

Daniel avatar
By Daniel
at 2009-04-21T00:06
原文恕刪 如果是演算法的話,我覺得應該可以用一個N^2的做法(不確定對不對) 如果是以最多拿兩倍來看(三被其實是一樣的做法) 先做一個二維的表,橫軸代表剩下的數量,縱軸代表上一個回合拿了幾個 因此每一格都是一個狀態,假設x代表處於該狀態的玩家輸了,那麼, 對於n=0時,都應標上x m 10 x 0 ...

益智問題(拈之變形)

Freda avatar
By Freda
at 2009-04-20T23:42
假設先手不能全拿,小於等於4個就不討論了~ (1)當有5個石頭時,先手勝 就先拿一個,不管對方怎麼拿,都可以全部拿光 (2)當有6個石頭時,後手勝 先手不能拿超過兩個,不然對手直接拿光就輸了 所以先手只能拿一個,變成剩下五個,還是輸 (3)當有7個石頭時,先手勝 先手先拿 ...

益智問題(拈之變形)

Rebecca avatar
By Rebecca
at 2009-04-20T22:39
原文恕刪 以前上演算法時有看過類似的題目 只是當時的題目是兩倍 我把之前做的題目po出來給大家看看 Consider a variant of Nim game played by two players: Initially, at least two matches are placed on t ...