一道北大强基题背后的故事(二)——出题者怎么想的?

2023-07-12 15:01:31 浏览数 (1)

上篇文章中,我们给出一道北大强基考试中的试题,计算[((1 sqrt(5)) / 2) ^ 12],给出了一条没有任何数学直觉,纯硬算的弯路以及题目的参考答案,相关内容请戳:

一道北大强基题背后的故事(一)——从走弯路到看答案

把答案字符串背下来,就学会数学了吗?

在开始内容之前,我们不妨回顾一下题目的解答:

a. 构造斐波那契数列:b_(n 2) = b_(n 1) b_n,令b1 = 1, b2 = 3;

b. 递推计算,知b12 = 322;

c. 写出bn的通项公式:bn = ((1 sqrt(5)) / 2) ^ n ((1 - sqrt(5)) / 2) ^ n;

d. 取n = 12, ((1 sqrt(5)) / 2) ^ 12 ((1 - sqrt(5)) / 2) ^ 12 = 322;

e. 因为((1 - sqrt(5)) / 2) ^ 12必然在(0, 1)内,因此[((1 sqrt(5)) / 2) ^ n] = b12 - 1 = 321。

我相信很多人直接看到这个解答都会一头雾水,感觉就是有人凭空给了一个构造,然后就刚刚好能把问题解决了,这几乎是上帝视角啊!a是很合理,可我为什么要写出a的式子?b和d为什么会去选择算b12的内容?c为什么要去用斐波那契数列的通项公式?e为啥恰好就这么解决了原问题呢?

看完了上述正向的解题步骤,还只是学懂此题的第一步。只会了这一步,下次除非遇到仅仅改掉参数的原题的浅层变化,还是很难有思路做出来。因为虽然每一步都看得懂,但我想不到啊!

就好像有一条带了箭头标记的迷宫,出题者是走出来了,可是把箭头撤了,又换了个不知道是啥样的迷宫,还要我尽量不走弯路的走出来?以为我是上帝吗?

其实,这个解答只是这个题的详细答案而已,(仅仅比“参考答案”321详细一点),就是是什么而已,压根没告诉你为什么,而只有为什么,才能帮助你举一反三地解其他题。

如果不了解这些,只是背下来这段解答对我下次再遇到类似问题(除去一模一样的时候)的时候,我还是没有任何思路去想到思路和给出解答啊。那这玩意到底应该怎么学习,怎么总结呢?或者说,出题人就是出的一个丑题,压根没有对数学基本概念、逻辑和数感的考察,纯粹看你见没见过,考察技巧?

所以,学数学解题,注意是解题,或者相关的数学智力游戏,重点是学习如何去破解一个谜题。即总结可能存在线索的特征,根据经验去尝试,最后在基本数学概念知识和逻辑的框架下完整求解或者证明。这也就是我们的分析过程。

可这个题怎么分析呢?可以怎样去猜测可能的思路,以及这样的思考方法,有没有泛化和通用性?

数学题是怎么出出来的?

解铃还须系铃人,那我们接着不妨揣测还原一下,一个出题老师,是出于怎样的考察目标,想到这样的题目,来达成目标的呢?

出题考试的目标有两个,一是通过题目考察学生对基础知识不同层次的记忆,理解和熟练程度;另一个就是分析解决能力,包括过程中的逻辑推理的严谨性等。一般而言,会从考察的基础知识的内容,一道题只会涉及到1~2个核心主干知识,比如,这题想考察数列这个章节的内容。

然后,具体选中了热门的竞赛知识点“特征根公式”。在一般的竞赛书上都有它的正面表述,直接考察就没有区分度了,我得想点花招。比如反过来用咋样?其反过来的逆定理的用法虽然对,但教科书,培训书上应该都不直接有,需要思考或足够量的练习才能有此灵感。于是,我希望给出一个题,要把形如a_n = Ca1 ^ n Da2 ^ n的通项公式,能化成a_(n 2) = Aa_(n 1) Ba_n的递推公式才能解决。故直接出题:

已知a_n = Ca1 ^ n Da2 ^ n,若a_(n 2) = Aa_(n 1) Ba_n,求A, B。

这里化通项公式到递推公式,基本就是原特征根定理的逆定理的应用了,在变换老旧的特征根考察的基础上,还顺便考察了韦达定理。学生只要约摸记得特征根公式,也不用严谨推理,就基本能倒着套用过来,这毕竟不是大题,也不用那么严谨。

但是这还是太过于浅层,容易想到,基本只相当于盖住前半句的古诗默写题。几乎是带着参数的纯数学模型结论的记忆和计算执行,还不涉及任何分析能力。于是还得再改改,得把需要这么转化这一点的思路隐藏起来。

好了,既然要分析才能得到思路,那怎么才能给出线索想到这里呢,即化成递推公式有什么优势呢?这时他想起了常见的这种数列代表,斐波那契数列,发现其递推公式相对是可计算的,就是一些迭代的加减乘除而已,而对应求出根以后,难免就带上了根号,对其n次方基本就比较麻烦了,要超过一般手算复杂度。即通项公式虽好,但并无法直接计算。因此,给出计算a_n的通项公式,作个计算题算个a10, a20之类的,要求自己发现直接计算的计算量迅速估计出有困难,转而用特征根法的逆算法找递推关系式,就是本题隐藏考察点,增加难度的第一层了:

已知a_n = Ca1 ^ n Da2 ^ n,求a20。

这题已经有点分析的意思了。不过,虽然隐藏了目标递推关系式的形式,但是稍有经验的学生就能看出这里a_n是有递推关系表达式的,并且根据特征根公式轻易一求,带入就马上解决了,思路依然有迹可循,基本也只是倒着套公式而已。

于是想再加码,观察到因为C和D是二次方程两个对称的根,一起出现还是太明显在提醒它和特征根方程之间的关系了吧?如果我只让求其中一部分Ca1 ^ n呢?因为本质上是a_n是可以求的,于是要求Da2 ^ n要能忽略不计,再改成估算题不就好了!于是自然想到,这个指数式子如果有|a2| < 1,那么一切|a2 ^ n| < 1,这样,a_n和Ca1 ^ n的差距,仅在小数部分,恰好有给定的整数部分值。于是构造A = B = 1,作了一个初步构造,得到了一对典型的根(1 /- sqrt(5)) / 2尝试写下题目:

求[((1 sqrt(5)) / 2) ^ n]。

然后再验证一下直接计算的难度,找到一个合适的n,使得用二项式定理展开或者指数算法的复杂度远远超过一场考试给这道题的时间,应该无空子可钻。发现n = 12还不错,再左右联想没有啥漏洞,成型。注意,没有漏洞的意思是,学生是有一定的线索走进我设计的一环一环的圈套的,要看懂我给的暗示,同时,逻辑正确的前提下,没有别的太容易的捷径可走。

实际上,中途出题人可能还设计过很多不同的考点,分析难度的设定,一些其他设置障碍的方法,以及尝试过很多不同参数的选择。这里为了简化,也是几乎省略了很多中间想法,直接给出了我推断的出题人当时的思考选择的最优路径,而忽略了其他被删掉的,把最后形成的和最终题目相关的出题思路展现了出来。看上去,它是从核心考察点出发,两路延伸后,形成了一整个带着这个核心内容的设计解题路径。

数学题本质是猜谜?

相信你看到了,这里的出题的题眼就是,它隐藏了本该出现要参与计算的项Da2 ^ n,后面的取整以及这些具体参数的取值都是为了让结果在去掉以后仍然能在可算的范围内以不发现这个丢失项,达到考场环境下不可计算的程度。而其它的考察点,都是教科书里本来就有的知识点,像程序一样套用即可。

可以说,刨去基础知识以外,能否解决此题,就看能不能想到要配方上一个Da2 ^ n。只要没有从不可计数的解题方向中找到这个方向,就必定掉进直接计算的陷阱。

难道我需要去背下来这条规律:看到(1 sqrt(5)) / 2的次幂,加上(1 - sqrt(5)) / 2的同次幂再算?或者再泛化一下,记忆点里加上sqrt,取整,这些特征?又或者,纯靠猜?还是就像猜谜一样,要见多识广?这样的虽然成立但是几乎无穷的等价变换方向,能否有章可循地找到,怎样才能找到?

但可能换个题,这个尝试又可能失效。问题是,这条结论看上去,也不是什么数学知识,是一条毫无美感的纯记忆垃圾。

所以,这样的数学考试题,是不是好题呢,出题者设计的路径,是否符合一般数学游戏题的基本文化?如果还有内容的创新,是否真的让人眼前一亮,拍案叫好,怎样的创新是真的好?

而于数学素养,这种基于解数学题的逻辑思维训练的价值在哪呢?怎么学习和训练呢?

别着急,下回接着说。

0 人点赞