周三上奥数课,惨遭滑铁卢。

注意:本文为方便阅读,定义 ϕ=1+52\phi=\dfrac{1+\sqrt{5}}{2}

发现问题

奥数课数学老师不在,让我和 RioBlu 来讲题,最后剩一段空余时间,我心血来潮要表演一个魔术:

“在这十个格子中,在前两个格子各填上一个正整数。当然,不要告诉我。让从第三个格子开始填,每个格子里的数是前两个格子的和,填到第九个格子为止。把第九个格子的数告诉我,我就可以告诉你第十个格子里的数。”

一通操作猛如虎,我将第十个格子算出了 22392239,正确答案却是…

了解问题

秘诀

假设第九个格子的数字为 nn,那么第十个格子的数字就是 ϕn+12\left\lfloor\phi n+\dfrac{1}{2}\right\rfloor(其中 x\lfloor x\rfloor 代表将 xx 向下取整)。

通俗点说,把第九个格子的数乘上 ϕ\phi,再四舍五入,就是第十个格子里的数了。

例如我填了 2244,那么前九个格子应该是这样的:

然后你把第九个格子的数字,也就是 110110 告诉我,我可以立马得出第十个格子的数是 110×ϕ178110\times\phi\approx178,而事实真的是这样,68+110=17868+110=178

原理

如果我们假设第一个格子为 aa,第二个格子是 bb,那么第九个格子和第十个格子的值我们就已经确定了:

如果将第九个格子乘上 ϕ\phi,那么可以算出 (13a+21b)×ϕ21a+34b(13a+21b)\times\phi\approx21a+34b,这正好是第十个格子的值。

分析问题

事实上,这种方法只能得到一个近似的值,如果这个估算值与真实值不相等,那么就会失误。因此,要保证万无一失,估算值与真实值必须相等:

ϕ(13a+21b)+12=21a+34b\left\lfloor\phi(13a+21b)+\dfrac{1}{2}\right\rfloor=21a+34b

拿到这个方程的时候,我人都傻了,这种方程怎么解啊?

最后,我将它的函数图像画了出来,并花了两天时间找出了规律:

ϕak<b<ϕa+k(k=121(51)13×2)\phi a-k<b<\phi a+k\quad\left(k=\left|\dfrac{1}{21(\sqrt{5}-1)-13\times2}\right|\right)

因此,在课上的例子中 a=100,b=4a=100,b=4,将 aa 代入上面的规律中可以算出 138.3<b<185.2138.3<b<185.2,然而 44 并不在这个范围内,所以估算值与真实值不相等。

解决问题

那么,我们要怎么避免出现这种尴尬情况呢?

一方面,我们可以算更多的格子。

事实上,相邻两个格子之间的比值会趋近于 ϕ\phi。通过观察上面的图我们发现,如果让对方填入前 n(n3)n(n\le3) 个格子,并将第 nn 个格子的值告诉你,那么这个值为 Fn2a+Fn1bF_{n-2}\cdot a+F_{n-1}\cdot b。其中 FnF_n 为斐波那契数列的第 nn 项。斐波那契数列就是前两个数为 11,从第三项开始每一项是前两项的和的数列,它长这样:{1,1,2,3,5,8,13,21,}\{1,1,2,3,5,8,13,21,\dots\}

因此方程变成:

ϕ(Fn2a+Fn1b)+12=Fn1a+Fnb\left\lfloor\phi(F_{n-2}\cdot a+F_{n-1}\cdot b)+\dfrac{1}{2}\right\rfloor=F_{n-1}\cdot a+F_{n}\cdot b

那么模仿上面的规律,你可以先给对方规定 aabb 的范围:

ϕak<b<ϕa+k(k=1Fn1(51)Fn2×2)\phi a-k<b<\phi a+k\quad\left(k=\left|\dfrac{1}{F_{n-1}(\sqrt{5}-1)-F_{n-2}\times2}\right|\right)\\

由于计算斐波那契数非常繁琐,因此利用斐波那契数列通项公式将 kk 化简一下得到:

ϕak<b<ϕa+k(k=ϕn12)\phi a-k<b<\phi a+k\quad\left(k=\dfrac{\phi^{n-1}}{2}\right)\\

然而,这还需要对方通过复杂计算自己的数字是否符合要求,魔术的气息瞬间就没了。因此另一方面,我们可以同时给 aabb 找一个范围,保证这个范围内的数绝对不会出错。

我结合函数图像的规律,舍大取小,得到 nn 对应的最大范围:

0<a,b<ϕn220<a,b<\frac{\phi^{n-2}}{2}

这样,你就可以在表演之前先计算好这个数字,然后在表演时让对方保证两个数字不超过这个范围。这样,既避免了失误,又保证了魔术的说服力。

你能表演一下吗?

(首先约定填到第九个格子,计算 ϕ92214.52\dfrac{\phi^{9-2}}{2}\approx14.52,因此范围为 0<a,b<14.520<a,b<14.52

“来,你随便想两个不超过 1414 的正整数,填在前两个格子,不要给我看到。”

(ta 填入141466。当然,你看不到 ta 填了什么)

“填好了吗?然后从第三个格子到第九个格子,每个格子都是前两个格子的和,把它们也填进去。”

(如上)

“你的第九个格子是多少?”

“308。”

(计算 308ϕ498308\cdot\phi\approx498

“第十个格子是 498。”

“哇好厉害,你怎么知道的?!”