‹ 返回工坊合集
数学游戏工坊 · 斐波那契取子游戏(Fibonacci Nim) | 九章格数学 PhiloMath

月兔拔萝卜

月牙岛的月光萝卜田熟透了,田心那颗月心萝卜闪着银光。轮到谁,谁就拔几根:第一次想拔多少都行(但不能整田拔光),之后每次最多拔对手上一回的两倍——谁能拔到最后一根月心萝卜,谁就点亮一晚月光!
当前关卡
★ 1
月光点亮
0
当前连胜
0
剩余萝卜
—

⚔️ 月田对决

选难度 → 🐰兔王长耳种下一田萝卜 → 您(小岛民)定谁先拔 → 轮流拔萝卜。规则:每次拔 1 根到限额根(首回限额 = 全田减一,不许一次拔光;此后限额 = 对手上一回的 2 倍);拔到最后一根月心萝卜的人赢。
🐰兔王长耳月牙岛之王 · 萝卜田庄家,取子高手
🐢龟灵博士百年老龟 · 参透 Zeckendorf 安全线
🥕月心萝卜田心最后一根 · 拔到它就赢
🧒您(小岛民)月牙岛的小朋友 · 就是您!
🧒 拔 1 根?
对局状态⚓ 种田中
对决规则拔到月心萝卜者胜 🏆
先手小岛民 🧒
轮到谁—
—剩余萝卜(根)
—上一手拔了
—本手限额(根)
🧒 小岛民,您来决定:
谁先拔第一茬萝卜?

🛠️ 摆田工坊 · 我是小庄家

像兔王一样种一田萝卜(剩余 n 根、当前限额 r,轮到谁就按这个限额拔),点「龟伯分析」看看:这个局面先手是赢是输?必胜的第一茬该拔几根?Zeckendorf 安全线又藏在哪里?
剩余萝卜20
当前限额19
—
Zeckendorf 分解:每个数 = 互不相邻的斐波那契数之和,金色的是最小分量 = 安全线
先手结局预判
—
种好后点「龟伯分析」
小贴士:安全线 = 剩余数的 Zeckendorf 分解中最小的那个分量。轮到您时,如果限额 ≥ 安全线,您就必胜——第一茬就拔「安全线」那么多根;如果限额 < 安全线(整田只剩一个斐波那契数时永远如此),先手必败——把第一步让给对手吧。

📖 月兔传说

月牙岛的月光萝卜、兔王的家底,还有龟灵博士压在龟壳底下的 Zeckendorf 密码。

🌙 月牙岛的月光萝卜田

月牙岛上种着一种神奇的月萝卜,只在月光下生长,田心那颗最大的「月心萝卜」攒满了一整个月的月光。传说谁拔到月心萝卜,谁家就一整年亮堂堂。兔王长耳是岛上的庄家,每年月圆节都摆下一田萝卜挑战全村孩子:「拔到我这一根,月光归您;拔不到嘛……哼哼,明年再来!」

规矩很简单:轮到谁,谁就拔至少一根;第一次随便拔(但不能把整田拔光),之后每次最多拔对手上一回的两倍。兔王自认这规矩天衣无缝——直到老龟龟灵博士发现,密码竟藏在「把数拆成不相邻的斐波那契数」里。

🥕 这游戏的大名:斐波那契取子游戏

这游戏在数学里叫 Fibonacci Nim(斐波那契取子游戏),是经典 NIM 的亲戚——但「不能超过对手两倍」这条限额,让它和普通 NIM 完全两个世界。1963 年,Michael J. Whinihan 在《Fibonacci Quarterly》创刊不久便完整破解了它,破解的钥匙正是 1972 年才被命名的 Zeckendorf 表示。

顺带一提:斐波那契数列 1, 1, 2, 3, 5, 8, 13… 本身就来自 1202 年斐波那契《算盘全书》(Liber Abaci)里那道著名的兔子繁殖问题——用兔子破解兔子游戏,刚刚好。

✨ Zeckendorf 密码:安全线

龟伯发现:每个正整数都能唯一写成若干个互不相邻的斐波那契数之和(Zeckendorf 定理)。其中最小的那个分量就是这堆萝卜的安全线——

4 = 3 + 1 (安全线 1)
7 = 5 + 2 (安全线 2)
10 = 8 + 2 (安全线 2)
12 = 8 + 3 + 1 (安全线 1)
18 = 13 + 5 (安全线 5)

Whinihan 定理:轮到您时,限额 ≥ 安全线 ⟹ 您必胜,第一茬就拔「安全线」那么多根;限额 < 安全线 ⟹ 您必败。尤其当剩余数本身是斐波那契数时,整堆就是一个分量、安全线 = 全部——所以首手几乎永远动不得它。

⚡ 必胜要诀 + 一个反直觉彩蛋

要诀就一条:轮到您时,拔走「安全线」那么多根。留下的数,它的最小分量会变成原来的两倍还多——对手的限额翻倍也够不着,只能眼看着您一根一根收网。

彩蛋(贪心会翻车):剩 20 根、限额 19 时,「拔 7 留 13」看着漂亮——可对手面对 (13, 限额 14) 能整田全拔直接赢您!正解是拔 2 留 18(18 = 13 + 5,安全线 5 > 2×2),对手立刻掉坑。

🧭 小岛民的生存法则:先手永远可以选对

和所有 NIM 亲戚一样,这里也有一条铁律——任意局面,轮到谁走,要么必胜、要么必败,没有第三种。

💡 您的选择只有两步:① 兔王种好田,先问龟伯(或自己拆 Zeckendorf):剩余数是「斐波那契堆」吗?② 斐波那契堆 → 首手必败,让兔王先拔,他拔多少您都能把安全线抢回来;不是斐波那契堆 → 您抢先手,此后每茬都拔「安全线」那么多根。唯一要练的,是心算 Zeckendorf 拆分。

低星级时兔王常常打盹拔错——那是练手的好机会;到了月心之巅,他每茬都精确,就看您拆数的功夫啦。

🌈 黄金比一家亲

相邻斐波那契数之比 Fk+1/Fk 会越来越靠近 黄金比 φ ≈ 1.618——所以「两倍限额」的取子游戏,密码居然和威索夫棋金格密码(⌊kφ⌋、⌊kφ²⌋)是同一家族。规则里一个小小的「2 倍」,让黄金比在两盘游戏里各自开出一朵花——这就是数学的浪漫。

🎉

太棒啦!