这个想法,其实在六年前就有了

大概六年前,读高二的时候,我就经常在想一件事:我做了这么多笔记,整理了这么多题目,能不能有一种办法,把它们组织得更好一点?

比如,把一些看起来不太一样、实际上却有共同思路的题目放在一起,打上标签;再顺着这些联系,看看它们还能往哪里延伸。

当时,成都七中有很多很厉害的老师。我常在自己钻研过一些问题之后,拿去向其中几位请教:这几道题是不是有什么共同点?这个结论能不能推广?换一个条件,还能不能这样做?

现在回想起来,那种交流带给我的帮助很大。自己先想一遍,再听老师点拨几句,有时之前散落在不同地方的知识,一下子就接起来了。你能很具体地感觉到,自己看问题的角度正在发生变化。

不过,他们不一定是直接教我的老师,也没有义务随时回答我的问题。愿意花时间跟我讨论,是出于好心。自己偶尔问一问当然没什么,可如果每天都有新问题,总不能跑到食堂堵着老师,不让人家吃饭吧。

于是,当时的我就有了一个挺朴素的愿望:以后能不能出现一种机器人,一方面替我整理笔记,把相似的问题和思路联系起来;另一方面,又像一个知识丰富、愿意耐心讨论的老师,能够回答我的问题,还能带着我往前多走几步?

当然,那时候想象里的机器人,多少有些无所不知、无所不能。现在自己开始做软件,才知道这里面每一件看起来理所当然的事情,都不太容易。

在等到这样的机器人之前,我先尝试了错题打印机。

手抄题目太费时间,打印似乎能省不少事。但纸张和耗材要花钱,打印下来以后,还得剪贴、整理,再把解答和自己的理解写上去。机器替我省掉了一部分抄题的劳动,后面该忙的,一样没少。

到了高三下学期,我还借过同学一台 B 厂的错题机,也借了他的手机。本来是想提高学习效率,结果大半个晚自习都拿来偷偷耍手机了。现在讲起来有些好笑,但当时确实控制不住自己。

这件事也让我记住了一个问题:有些学习工具,看起来是在帮你,实际使用时却可能引入新的麻烦。而整理错题本身,又是一件很难立刻得到回报的事情。你忙了半天,纸贴好了,字写满了,但自己到底理解了多少,下一次能不能做出来,还没有答案。

比起整理本身,我真正感兴趣的是后面的事:发现一个现象,想知道为什么;弄明白以后,又联想到另一个问题;再顺着这个问题,去认识更多原来不知道的东西。

后来,AI 让我看见了一点这种可能。

尤其是谷歌推出 Gemini 3 Pro 之后,我有一阵子很喜欢跟它摆龙门阵。从小时候的经历,聊到眼下遇到的问题,再聊到一些原本完全不熟悉的知识。那段时间,我甚至连游戏都打得少了。对我来说,它当时的回答很有灵气,经常能把一个随口提出的问题,带到一个挺有意思的地方。

这让我重新想起高中时的愿望:如果学习也能经常带来这样的体验,会怎么样?

你提出一个问题,得到及时的回应;你刚理解一个概念,又发现它能解释另一个现象;原来觉得混乱的东西,逐渐在脑子里有了秩序。这样的反馈,对我来说是很有吸引力的。

我不觉得学习可以因此完全没有困难。该自己推的式子、该做的练习、该经历的困惑,还是绕不过去。但那些和理解没有太大关系的整理劳动,能不能少一点?那些本来已经出现、却因为找不到人讨论而中断的好奇心,能不能被接住?

我做 Notara,最早就是想解决这些事情。

至于生源、天分这些大家经常讨论的问题,我更愿意先把注意力放在另一边:一个已经坐在教室里的学生,他还有多少潜力没有被用出来?有没有可能,他并非缺少理解问题的能力,只是一直没找到合适的方法,也没有在学习中得到足够清晰的反馈?

至少对我来说,这是一个值得认真做下去的问题。

再往前说:初中那几年

读初中的时候,我在县城最好的初中一直名列前茅,三年里超过一半的考试拿了年级第一。课内知识对我没什么难度,考前轻轻复习一下就能考得不错。我本以为可以一直待在这个舒适区,但我父亲不这么想。他送了我一本《数学培优新方法》,又买了一套学而思的初中数学竞赛网课。从那以后,我打开了一个新的世界。

一开始我很抗拒这些课外的东西。老爹要求我每周拿出一个周六,专门做《培优新方法》上的题,不会的就去看网课里相关的内容。这件事一开始几乎没有正反馈:课内知识我烂熟于心,可一碰到竞赛题和超纲内容,大脑的 CPU 得超载才能勉强摸到一点门道。

让我印象很深的是,《培优新方法》上常有一些出处很吓人的题,比如“华约”的自主招生题,或者某个国家的数学奥林匹克题。(这已经是时代的眼泪了:华约、北约、卓越这几个联考 2015 年就取消了,2020 年起自主招生整体停办,换成了强基计划。现在的小登们,大概只能在强基培训里见到这些题了。)

黄东坡老师选这些题肯定是有用意的,它们大多是前面例题的拓展或变式。真正参透了例题,往前走一步两步,就能找到破解的办法,绝不是故意刁难学生。题目的出处只是个噱头,就像一个人给自己起名叫大黄蜂,他也没法因此变成汽车人。可惜我当时真会被出处吓到,俗称着了相。作为外行来指导我的老爹也一样,一看见这些题就说:“哎呀,这些不是你现在该做的。”现在说起来很好笑,但这只是我当时认知局限的一部分,之后还有更让人难绷的。

我一直很感谢老爹。他很有远见,能及时督促我去开拓思维。但他毕竟是外行(这么说绝无贬义),我自己也不太懂,只能靠互联网上真假难辨的只言片语,自己琢磨学习的方向和方法。这就是信息差:省会的同龄人早就接触到了完整的奥林匹克竞赛体系,我还在泥地里摔跤。听起来很残酷。Notara 里的路线规划,灵感就来自这段经历:老师陪你把要学的内容分成阶段、标出先修,学着学着发现不合适,就改后面还没上的课。

当时我陷进了一个错误的学习方式:我和老爹都以为,题看得足够多,视频刷得足够快,知识就能内化下来。事实并非如此。印象里,初一升初二的暑假,我就“学完”了初中数学的全部内容,还有初中物理的力学部分。可表面上学完,不等于真正掌握。

那个暑假我被带到父亲的单位,在一间空办公室里刷网课。我玩心很大,并不想高强度地学,看着看着就走神,只想快点看完去打会儿游戏。学习质量可想而知。举个例子:你问我垂径定理是什么,我当然知道;可你给我一道还算简单的题,我连圆心和弦的中点可以连起来都不会主动想到,只会盯着图发呆。整个暑假,就在我一片片黏黏糊糊地堆豆腐渣工程中过去了。

真正的转折,是我加入了一个神奇的、专门分享资料的 QQ 群。在那之前我一直圈地自萌,自己学成什么样无所谓,只要唯一管我学习的老爹觉得我学得很好就够了。进群以后,我第一次感受到来自同龄人的压力。群里有一些非常优秀的学长和同龄人,后来大多考上了很好的大学。他们给了我压力,也逼着我反思:如果只是一味刷课而不去理解,最后和没学过又有什么区别?

我开始给自己出练习题。把网上的平面几何题用尺规作图抄下来,想完、做完以后,每天晚上洗脚的时候再盯着图看。这确实有用,我的辅助线技巧每天都在一点点进步。到后来,我已经能完整做出一道初中联赛级别的几何题:从图形里找方向,试了一次又一次,最后完成证明。Notara 的间隔复习和白板上的小练习,就是从这段经历来的:隔几天再看一次,每次只盯最关键的那一步;需要练习时,出题员会按你的情况出变式。

很少有人天生就对抽象的几何图形和代数符号有感觉,有的话,那也是四个标准差之外的天才。那时我已经意识到自己不是什么天才,得找到适合自己的思考方向。

常有人问:AI 已经能做很多人做不到的思考,人还有什么用?我的一个回答是“思考方向”。开发 Notara 的时候,我常常发现模型给的方案不如我的直觉好。至少到现在,在找方向这件事上,我还没被它比下去。所以培养直觉和方向感是一件很重要的事。

第一本数学笔记本

那段时间,我印象最深的是正方形里的“半角模型”。今天看来它简单得像吃饭喝水,但当时确实给了我很大的启发,让我第一次明白旋转、构造全等三角形是为了什么。

例题:正方形里的半角模型
正方形 ABCD,E 在 BC 上,F 在 CD 上,角 EAF 为 45 度;三角形 ADF 绕 A 旋转 90 度到三角形 ABF′ A B C D E F F′ 45°
把 △ADF 绕 A 转 90°,得到 △ABF′;红色的两段一样长

题目是这样的:正方形 ABCDABCD 中,点 EE 在 BCBC 上,点 FF 在 CDCD 上,∠EAF=45∘\angle EAF=45^\circ。证明 EF=BE+DFEF=BE+DF。

难处在于,BEBE 和 DFDF 分在正方形的两条边上,怎么也凑不到一起。可以从两个方向想。

一个方向看角。∠BAD=90∘\angle BAD=90^\circ 被 ∠EAF=45∘\angle EAF=45^\circ 分开,剩下的 ∠BAE\angle BAE 和 ∠DAF\angle DAF 加起来也是 45∘45^\circ,只是散在两边。要是能把这两块拼到一起,就能和 ∠EAF\angle EAF 比一比。

另一个方向看边。ABAB 和 ADAD 一样长,又共用顶点 AA、夹着直角。把 △ADF\triangle ADF 绕 AA 转 90∘90^\circ,ADAD 正好落在 ABAB 上,FF 落到 CBCB 延长线上的 F′F'。

这两个方向其实是同一步。转过去以后,∠F′AE=∠BAE+∠DAF=45∘=∠EAF\angle F'AE=\angle BAE+\angle DAF=45^\circ=\angle EAF。再加上 AF′=AFAF'=AF、AEAE 公用,△AF′E≅△AFE\triangle AF'E\cong\triangle AFE,所以 EF=F′E=BE+BF′=BE+DFEF=F'E=BE+BF'=BE+DF。原本散在两边的线段和角,一次旋转就都拼到了一起。

后来我进了计算机学院,回头再看,这大概就是在问题空间里做搜索吧:每添一条辅助线、转一个三角形,就是往下走一步;走不通,就退回来换一条路。直觉的作用,是告诉你先试哪一条。原来有了足够的直觉和知识储备,是一件这么爽的事:共顶点的两条等长线段、被拆开的一个直角,这些蛛丝马迹都在给你指方向。

也是这些平面几何的练习,让我的数学学习第一次有了真正的正反馈。以前我做题要么秒杀,要么做不出来;这一次,我总算能靠痛苦的搜索和枚举、联想和演绎,一点点把一道题拆开。

这有点像唱歌里的换声点:卡在那儿的时候怎么唱都别扭,我自己到现在也还没磨好。也许做什么事都有这样一个瓶颈,突破了,任督二脉就通了。

有了方便复习的几何卡片,我就想:既然已经做了这么一个形式主义的东西,为什么不变本加厉一点?于是我有了第一本数学笔记本,慢慢在上面写我对题目的看法,把同一类题整理到一起。到初三的时候,笔记本上已经装了很多题。

人的精力槽毕竟有限。整理得多了,有时候也会为了把笔记本填满而去填满它。但开卷有益,抄下来总会有收获,至少比光看强;加上自己的思考,巩固得就更明显。

我印象最深的,是自己总结出的一套一元二次方程整数根问题的变形方法。

例题:一元二次方程的整数根

这类题一般长这样:方程的系数里带着参数,要求方程的根都是整数,问参数能取哪些值。我当时攒下了三种办法。

判别式法。根要是整数,判别式先得是完全平方数。比如求整数 kk,使 x2−kx+k=0x^2-kx+k=0 的两根都是整数。设 k2−4k=n2k^2-4k=n^2(nn 为非负整数),配方得 (k−2)2−n2=4(k-2)^2-n^2=4,也就是 (k−2−n)(k−2+n)=4(k-2-n)(k-2+n)=4。这两个因数奇偶相同,只能都是 22 或都是 −2-2,于是 n=0n=0,k=4k=4 或 k=0k=0。

韦达定理加因式分解。还是这道题:x1+x2=kx_1+x_2=k,x1x2=kx_1x_2=k。两式相减消掉 kk,得 x1x2−x1−x2=0x_1x_2-x_1-x_2=0,两边加 11,就能分解成 (x1−1)(x2−1)=1(x_1-1)(x_2-1)=1。两个整数乘积为 11,只能同为 11 或同为 −1-1,两根是 2,22,2 或 0,00,0,同样得到 k=4k=4 或 00。

再换一道:已知 q−p=198q-p=198,求 x2+px+q=0x^2+px+q=0 的整数根。由韦达定理,x1x2+x1+x2=q−p=198x_1x_2+x_1+x_2=q-p=198,两边加 11 得 (x1+1)(x2+1)=199(x_1+1)(x_2+1)=199。199199 是质数,两根只能是 00 和 198198,或者 −2-2 和 −200-200。

靠正整数有下界来枚举。两根都是正整数时,先设 x1≤x2x_1\le x_2,再用题目里的条件给 x1x_1 定一个上界。比如两根满足 1x1+1x2=12\frac1{x_1}+\frac1{x_2}=\frac12:由 x1≤x2x_1\le x_2 得 12≤2x1\frac12\le\frac2{x_1},所以 x1≤4x_1\le4;又 1x1<12\frac1{x_1}<\frac12,所以 x1≥3x_1\ge3。一上一下夹住,只剩 (3,6)(3,6) 和 (4,4)(4,4) 两种。

当时把这些写进笔记本,真的很有成就感。

我想把这种成就感也带进 Notara。课上,老师把这节课的要点一块块写上白板;同一类题会挂在同一个专题下;到了复习课,由你自己把学过的东西搭成一个结构,再拿它去攻一道新题,攻不动的地方退回去补。整理的活儿可以交给它,搭结构这一步留给你自己。

顺便一提,LLM 真是个好东西。上面这些题,很多具体怎么写的我已经记不清了。我把记得的几个关键词丢给 AI,它帮我把这些经典题型重新写了出来,还顺手给了变式。我越来越觉得,你们赶上了一个好时代。当年我想弄明白这些东西,得去逛书店、找电子书和网课,甚至去贴吧发帖提问。现在借助 AI,几分钟就能找到我们当年要花半天才能找到的东西。找到以后,还是得自己想明白,这一点倒是没变。

七中的同学们

后来我顺利考上了成都七中(其实差点翻车),遇到了很多比资料群里更厉害的同龄人。他们中不少人后来学了学科竞赛,进了国家集训队,甚至国家队。

当时我很疑惑:我和他们之间,是不是智力上就有差距?和他们一起上课,我的反应确实会慢半拍。可这到底是因为他们基础本来就比我好,还是因为他们比我聪明太多,已经分不清了。我想两者都有。

这也算回答了我在第一节最后提的问题:聪明不是生下来就定死的,它需要一直复习、一直维持。我也见过一些初中时很优秀的同学,高考分数并不尽如人意。

我们学习,其实不是为了证明自己比谁聪明、比谁努力,甚至也不是为了证明自己能考多少分,而是为了形成自己的思维习惯,或者说看问题的方法。这也是我做 Notara 这个小软件的目的:提分是其次的,我更想借大模型广阔的知识面和推理能力,帮学生把自己的思考能力练出来。

把物理当成二次函数

高中能讲的事其实还蛮多,最典型的,是我把初中那套学习方法又重新发明了一遍。为什么是“重新发明”?这和我的思维惰性有关。我们接着往下看。

刚上高中时,我在选拔竞赛生的拔尖创新人才夏令营里被各路大神打击得不轻。可回家真正开始预习高中内容,又觉得事情没那么悲观(后来证明我太乐观了)。高中课内的知识我都掌握得很快,尤其是物理的运动学:还原回去,不就是数学里的二次函数嘛。我三下五除二就把它搞定了。

第一次月考就给我敲了警钟。数学其实考得很好:有一道浙江的高考题,分母是个根式函数,先讨论单调区间,再求值域,全班只有我和另一个很强的同学拿了满分。物理却出乎我的意料,最直观的感受就是:做不完。

直到高三复盘,我才想明白。匀变速直线运动的数学模型确实是二次函数,这不假。可如果学二次函数时留意过差分,就会知道:等间隔取值,相邻两个差的差是常数。放到物理里,这就是 Δx=aT2\Delta x=aT^2。解方程时你也知道设而不求,用不着的量就别去解它。放到物理里,就该用 v2−v02=2axv^2-v_0^2=2ax 把时间消掉。可我偏偏不用,非要把参数一个个硬解出来。

这是一种幼稚的还原论。要是当时有现在前沿的 AI 模型,我相信自己能很快发现这个误区,可它偏偏在我脑子里挥之不去。人天生就爱把事情粗暴地简单化,这是一种认知上的懒惰。

我不光在物理上这么想,化学也一样。结果到了期中考试,最擅长的数学居然没做完,化学更是考得一塌糊涂。当时我想:不对啊,配平方程式连二次方程都用不上,列个一次方程组就行了。高三的我又要出来骂人了:你解方程组都知道设而不求,到了化学怎么就不知道了?氧化还原方程用得失电子守恒很快就能配平,何必把每个系数都设出来硬解?更要命的是,我过分忽视了化学是一门实验学科,很多实验题的填空错得离谱,完全是凭空想象。

这时我才意识到,自己又一次走上了错误的路,就像初中那样。

宣纸、网课和一个寒假

为了应付这场全面的学习危机,我重新拾起了记笔记,还开始熬大夜。现在想起来很滑稽:我买了很多宣纸,在宣纸上记笔记,上课时同学和老师看见了,还以为我在搞行为艺术。更让人忍俊不禁的是,百乐的走珠笔在宣纸上写字效果太好了,我有点沉迷于做手帐,反而忽略了对知识的理解和整理。

我曾经很想把学过的元素化学整理一遍,也背了不少化学方程式,可总觉得这些东西不成体系。问题不在于课本上的知识没记住,而是缺一个能把它们串起来的锚点。期末考试仍然不理想。熬夜其实会降低我的效率,而我记笔记的方式,更像是一种精神胜利。

寒假回家,我彻底没招了,于是打开电脑,开始学郑瑞老师的化学网课。让我惊叹的是,化学原来可以这么有逻辑地推出来。比如讲硫和氮,他抓的是化合价:处在最高价,只能被还原,表现氧化性;处在最低价,只能被氧化,表现还原性;处在中间价,两样都有。浓硫酸为什么是强氧化剂,二氧化硫为什么既能被氧化又能被还原,氨为什么有还原性,一下子都有了统一的解释。他还会主动用问题引着我们往下想。当时我还不知道,这就是苏格拉底式的教学,现在它是 Notara 默认的教法。

不过那时最困惑我的一个问题,网课里没讲,我也没找到人问:水溶液里 −2 价的硫,能不能直接被氧化成 +6 价?课本上的硫总是一格一格地跳,−2、0、+4、+6,像在爬楼梯。能不能一步跨上去?这个问题在我脑子里挂了很久。

直到最近我把它丢给 LLM 大人,才发现这个问题比我想的有意思得多。答案是能,但“化合价能不能一步跳过去”和“反应是不是一步完成”是两回事。化合价是记账用的,不是反应走的路。顺着这个问题往下问,硫和氮的一大堆元素化学,突然就串起来了。

延伸:硫从 −2 价到 +6 价

账上没问题。把硫化物和次氯酸根写成总反应:S2−+4ClO−⟶SO42−+4Cl−\mathrm{S^{2-}+4ClO^-\longrightarrow SO_4^{2-}+4Cl^-}。硫从 −2-2 到 +6+6 失去 8 个电子,4 个次氯酸根里的氯从 +1+1 到 −1-1,各得 2 个,账是平的。

路上不是一步。真实体系里,硫一般不会“啪”一下直接变成硫酸根,中间可能出现单质硫、硫代硫酸根、亚硫酸根这些物种,走哪条路要看氧化剂、pH、浓度和温度。氧化剂弱一点或者不够,常常停在单质硫;氧化剂够强、够多,才一路走到硫酸根。

还有一个坑。普通水溶液里其实没有多少裸的 S2−\mathrm{S^{2-}},它会水解:S2−+H2O⇌HS−+OH−\mathrm{S^{2-}+H_2O\rightleftharpoons HS^-+OH^-}。除非溶液很碱,真正去反应的多是 HS−\mathrm{HS^-};到了酸性条件下,就主要是 H2S\mathrm{H_2S} 了。

顺着问氮。氮比硫还适合问这种问题。

  • −3-3 价的氮能不能一路氧化到 +5+5?账上可以,NH4+\mathrm{NH_4^+} 变成 NO3−\mathrm{NO_3^-} 也是失去 8 个电子;可土壤里的硝化作用,要先经过羟胺、亚硝酸根。
  • 反过来也行:NO3−+10H++8e−⟶NH4++3H2O\mathrm{NO_3^-+10H^++8e^-\longrightarrow NH_4^++3H_2O}。极稀的硝酸和锌反应,就能生成硝酸铵。
  • NH4+\mathrm{NH_4^+} 和 NO2−\mathrm{NO_2^-} 放在一起,一个 −3-3 价、一个 +3+3 价,会一起变成 00 价的氮气:NH4++NO2−⟶N2+2H2O\mathrm{NH_4^++NO_2^-\longrightarrow N_2+2H_2O}。同一种元素的两个价态,互相把对方拉到中间,这叫归中。

为什么 NO2\mathrm{NO_2} 那么容易歧化?课本的答案是“+4+4 是中间价态”。可中间价态多了去了,为什么偏偏是它?可以拆成三层看。

  • 两边都有好去处。在碱里,2NO2+2OH−⟶NO2−+NO3−+H2O\mathrm{2NO_2+2OH^-\longrightarrow NO_2^-+NO_3^-+H_2O},+3+3 和 +5+5 在水里都有稳定的承载物种;在水里,3NO2+H2O⟶2HNO3+NO\mathrm{3NO_2+H_2O\longrightarrow 2HNO_3+NO},NO\mathrm{NO} 是气体,跑掉以后平衡继续往右。
  • 热力学上站得高。把各价态画成 Frost 图,一个价态的点如果落在两边相邻价态连线的上方,它就倾向于歧化。
  • 分子本身不安分。NO2\mathrm{NO_2} 是奇电子分子,很活泼,还会二聚成 N2O4\mathrm{N_2O_4},反应的路不难走。

所以“中间价态容易歧化”只能算一句口诀。更接近本质的说法是:这个价态比两边的稳定物种能量高,而且有一条好走的反应路径。

大模型的知识面比任何一个高中生都广,它能在复习时帮你把看起来不相干的知识理出来,钉到一个更高的节点上。Notara 里的头脑风暴和体系梳理就是做这个的:一个负责放出去,一个负责收回来。这就是发散和总结的对立统一。

一个寒假恶补下来,我对化学真正有了兴趣,做数学题的感觉也找回来了。数学靠的是每天定时练习保持手感,特别是计算能力的训练,让我整个高中都受益匪浅。只是每天自己找题很麻烦,题库攒大了又做不完,得挑高质量的做。现在 Notara 的首页每天会列出到期要复习的卡片;想多练几道,也可以请老师按你的目标从题库里挑。

随着信心建立起来,我的成绩越来越好,也抛弃了行为艺术的宣纸,换成了正儿八经的笔记本。每次上课都在笔记本上抄写,尤其是化学课和生物课,下课时能记住九成以上,顺手把作业做了,知识就掌握得更稳。只不过那时的笔记,还是以原汁原味记录老师上课说的话为主,没什么自己的理解和整理。

顺带一个用 Notara 的小建议:模型生成回答和板书需要一点时间,这段时间可以在纸上跟着抄一抄,理解会更牢。

过拟合

中间出过一次小插曲,算是一场不大不小的滑铁卢。高二上学期,我非常沉迷刷题。其实那时认知上已经有点麻痹了:题刷得越多,就越过拟合,越想用刷题的经验去解决问题。这又是一次认识没能及时往上走的过程。

当时唯一的办法是问老师,但问老师只是有概率得到一个 idea。老师要面对一整个班,看到我抱着一摞题来问,也很难一下子看出这些题能提炼出什么,只能泛泛地说我做题太毛躁。要是那时能问大模型,也许我就能弄清楚这些题到底给了我什么启示,在那些表面上做对的题下面,还藏着多少我不懂的东西。

第三次月考的题出得很对我胃口,都是我平时刷的那种风格,我考得非常好。期末调研考试难度不如月考,强调的是回归课堂基础。我已经忘了当时是怎么考的,只记得排名大约是第三次月考的十倍。

那段时间刚好是疫情,我陷入了很深的迷茫,每天在家郁郁寡欢,靠大量做题来安抚自己被不可知论装满的内心。现在想起来,这对一个十七岁左右的年轻人挺残酷的。考试和做题也许就是一个高中生的全部,你把他打倒在地,却不告诉他原因,逼着他认输,这太阴险了。所以在 Notara 里,老师每次判你这道题做没做出来,都得写清关键的是哪一步。

语文,和一个关于标签的梦

疫情告一段落,回到学校,我开始借其他同学的笔记来巩固基础,死马当活马医。趁着其他科目停滞,我钻研起了语文。这是一片富饶的瀚海,钻研文言文和阅读的那段日子,是我高中最快乐的时光之一。读到的很多人物传记,都让我忍不住借同学的手机去搜:这个人后来还做了什么?然而放在今天,这些历史上大人物的生平,只不过是 LLM 大人带领渺小的碳基蝼蚁阅读他们祖先的著作之后,顺手一提的事情罢了。

在这个过程中,我试着把已有的知识归类,比如文言实词和虚词,又去体会古诗词和古文的文风,慢慢能读懂一些言下之意了。这让我相信,文字表面之下,也许还有一层更高的东西。后来读本科时,我认识了一位学汉语言的朋友,他告诉我,不同朝代的文风确实很不一样。我还了解到,《元史》和《宋史》都修得挺仓促。

《宋史》是元朝末年修的,两年半就写完了四百九十六卷,是二十四史里最厚的一部,而接替脱脱当都总裁的阿鲁图,还不认识汉字。书里有一人两传的,李熙靖就有两篇传;记北宋详细,记南宋潦草,《循吏传》里一个南宋人都没有。

《元史》更快。明初两次开馆,前后只用了三百三十一天。清朝的钱大昕评价它:“古今史成之速,未有如《元史》者;而文之陋劣,亦无如《元史》者。”速不台和雪不台其实是同一个人,书里给他立了两篇传;同一个蒙古名字 Temür,书里能写成帖木儿、铁木儿、帖睦迩、帖穆尔,偏偏元朝叫这个名字的人又特别多,燕帖木儿、察罕帖木儿、扩廓帖木儿……古人随便一马虎,我就得在无数个帖木儿里找出正确的那个帖木儿。所以读史书也得先问一句:这段话是谁、在什么时候、照着什么写的?

其他学科,这个阶段做的事也差不多。我自己买了一台 Y 厂的错题机,开始用错题集和小猿搜题整理习题集。突然有一天我发现,很多题目都有一些要点,比如物理思维、代数结构,这些要点之间也许有某种相似性。我能不能给题目打上标签,存进电脑,再像搜索引擎一样按标签搜?这样就能想起很早以前做过的题。恭喜我发现了 embedding!好吧,其实只是标签检索,离 embedding 还差得远。

标签最妙的地方,是能把一些风马牛不相及的东西连起来。现在回头举个例子:有一道高考压轴题,矩形 ABCDABCD 有三个顶点在抛物线 y=x2+14y=x^2+\frac14 上,求证它的周长大于 333\sqrt3。表面上看,这是一道圆锥曲线题;拆开一看,真正起作用的是主元法和绝对值不等式。给它打上这两个标签,它就和高一常见的一类拓展题挂到了一起:已知二次函数在 [−1,1][-1,1] 上的绝对值不超过 1,求系数的范围。一个在高三的圆锥曲线里,一个在高一的二次函数里,隔着两年的课本,用的却是同一把刀。(首页那段示例对话,讲的也是这道矩形题。)

例题:抛物线上的矩形,和二次函数的系数

抛物线上的矩形。整道题的钥匙是一条性质:抛物线 y=x2+14y=x^2+\frac14 上横坐标为 x1x_1、x2x_2 的两点,连线的斜率是 x1+x2x_1+x_2。设直角顶点 BB 的横坐标为 tt,ABAB 的斜率为 kk,那么 BCBC 的斜率是 −1k-\frac1k。竖直的直线和抛物线只交于一点,所以两条边都不竖直;把图左右翻过来,或者交换 AA、CC,总能做到 k≥1k\ge1。于是 AA 的横坐标是 k−tk-t,CC 的横坐标是 −1k−t-\frac1k-t,

∣AB∣=∣k−2t∣1+k2,∣BC∣=∣1k+2t∣⋅1+k2k.\begin{aligned}|AB|&=|k-2t|\sqrt{1+k^2},\\ |BC|&=\left|\tfrac1k+2t\right|\cdot\frac{\sqrt{1+k^2}}{k}.\end{aligned}

式子里有两个变量。先把 kk 当成常数,只盯着 tt,这就是主元法。tt 藏在两个绝对值里,系数一个是 −2-2、一个是 +2+2,加起来正好抵消。因为 k≥1k\ge1,

∣AB∣+∣BC∣≥1+k2k(∣k−2t∣+∣1k+2t∣)≥1+k2k(k+1k)=(1+k2)3/2k2.\begin{aligned}|AB|+|BC|&\ge\frac{\sqrt{1+k^2}}{k}\left(|k-2t|+\left|\tfrac1k+2t\right|\right)\\&\ge\frac{\sqrt{1+k^2}}{k}\left(k+\tfrac1k\right)=\frac{(1+k^2)^{3/2}}{k^2}.\end{aligned}

剩下的是一个只含 kk 的函数。令 s=k2s=k^2,由均值不等式 1+s=1+s2+s2≥3s2431+s=1+\frac s2+\frac s2\ge3\sqrt[3]{\frac{s^2}{4}},得 (1+s)3≥274s2(1+s)^3\ge\frac{27}{4}s^2,也就是 (1+k2)3/2k2≥332\frac{(1+k^2)^{3/2}}{k^2}\ge\frac{3\sqrt3}{2},周长至少是 333\sqrt3。

等号要 k=2k=\sqrt2,第一个不等号还要 k=2tk=2t。可这时 ∣AB∣=0|AB|=0,AA 和 BB 重合,矩形不存在。所以周长严格大于 333\sqrt3。

二次函数的系数。这类题我记不清原题了,按记忆编一道:已知 f(x)=ax2+bx+cf(x)=ax^2+bx+c,当 −1≤x≤1-1\le x\le1 时 ∣f(x)∣≤1|f(x)|\le1,求证 ∣a∣≤2|a|\le2,∣b∣≤1|b|\le1,∣c∣≤1|c|\le1。

直接盯着 aa、bb、cc 很难下手,因为条件给的是函数值。那就换主元:不看系数,改看 f(−1)f(-1)、f(0)f(0)、f(1)f(1) 这三个函数值,它们的绝对值都不超过 1。反过来把系数用它们表示:

c=f(0),b=f(1)−f(−1)2,a=f(1)+f(−1)2−f(0).\begin{aligned}c&=f(0),\qquad b=\frac{f(1)-f(-1)}{2},\\ a&=\frac{f(1)+f(-1)}{2}-f(0).\end{aligned}

再用一次绝对值不等式:∣b∣≤1+12=1|b|\le\frac{1+1}{2}=1,∣a∣≤12+12+1=2|a|\le\frac12+\frac12+1=2。这几个界都取得到,比如 f(x)=2x2−1f(x)=2x^2-1 就让 ∣a∣=2|a|=2。

还能再往前问一步:∣ax+b∣|ax+b| 在 [−1,1][-1,1] 上最大能有多大?一次函数只要看两个端点,而 a+b=f(1)−f(0)a+b=f(1)-f(0),b−a=f(0)−f(−1)b-a=f(0)-f(-1),所以 ∣ax+b∣≤2|ax+b|\le2。

挂在一起的地方。两道题都是先选对主元:矩形题先固定 kk、盯住 tt;二次函数题干脆把主元从系数换成函数值。然后都是把要估计的量,写成几个已经知道大小的量的组合,用绝对值不等式一把收住。两张卡都打上“主元法”和“绝对值不等式”,它们就连上了。

可惜当时我对电脑几乎一窍不通,除了打游戏。如今 Notara 的题卡都带标签,同类题挂在同一个专题下,找卡片时老师会按你的意思去检索,也算是六年之后圆了我一个梦吧。

高三:差的那一脚

到了高三,前面说的很多东西都一再得到证实,它们确实是痛点和难点。

导数里有一类很难的题,要“找点”。比如要证明函数有零点,光知道它先减后增还不够,还得亲手找出一个函数值为正的点。这其实就是数学分析里给定 ε\varepsilon 去找 δ\delta(或者 NN)的那件事。办法常常是把超越函数放缩成多项式,比如用 ex≥1+xe^x\ge1+x、ln⁡x≤x−1\ln x\le x-1,点就能算出来。要是当时我知道这些,理解问题的本质会轻松得多,可我就差这临门一脚。

物理也一样。我一直在碰到一些神奇的模型,比如导轨上的杆接一个电容,受恒力拉动,算下来它竟然是匀加速:电容器上的电压 U=BLvU=BLv,电流 i=CdUdt=CBLai=C\frac{\mathrm dU}{\mathrm dt}=CBLa,于是 F−B2L2Ca=maF-B^2L^2Ca=ma,a=Fm+CB2L2a=\frac{F}{m+CB^2L^2}。这些背后都是微积分,高中只能用微元法绕过去。可我没有去系统地学微积分,因为对初学者来说,自己蹚出一条系统学习的路本身就很难。要得到靠谱的建议,得有贵人相助:要么是花钱请的贵人,六百块钱一小时的家教;要么是人情上的贵人,可你总不好天天去麻烦自己的老师,更别说别班的老师了。

化学的工艺流程题也是这样。里面很多是化工生产中常见的操作,比如钴酸锂电池的相关工艺,高中化学已经把这些生产模型简化到不行了。我就自己总结流程里的物理操作:这里加热有什么用,那里鼓风有什么用……偶尔去听优秀老师的讲座,比如 f 老师,让我受益匪浅。班上有同学去听了 z 老师的讲座,z 老师英俊潇洒,出题别具一格,常常出到很本质的地方,让人拍案叫绝,可惜能答出来的学生不多。也许有了大模型,学生就能找到更高、更本质的视角去看问题了。

到了高三后期,限制我的主要因素,已经从熟练度变成了知识的深度和广度。我从未如此渴望在知识的海洋里遨游。

然后我就毕业了。

最后卡住我的,是问问题

回头看这一路,卡住我的东西一直在变。

初中的时候,缺的是知识从哪来:不知道看什么书,不知道省会的同龄人在学什么,只能在泥地里摔跤。后来缺的是怎么组织:题做了一大堆,方程式背了一大堆,就是不知道哪些该归到一起。再后来缺的是怎么调用:垂径定理明明会背,看着图却想不到连圆心和弦的中点;复习和总结的道理明明懂,换一个学科,又掉回刷课、刷题的坑里。

这些慢慢解决以后,卡住上限的,变成了一件很隐蔽的事:我能不能意识到,这里还有一个问题值得问?

高三后期我说,限制我的是知识的深度和广度。现在想来,准确点说也不全是知识不够广。知道自己缺哪块,问题就解决了一半;最难的是不知道该往哪里挖。不知道答案,你是有感觉的;不知道这里还有问题,通常一点感觉都没有。当年要是我根本没冒出“−2 价的硫能不能一步跳到 +6”这个念头,后面的水解、反应路径、热力学、动力学,一个都不会出现。老师把标准答案告诉我,我可能还觉得自己学会了。

后来我琢磨,问题大概可以分三层。第一层是事实:这个反应能不能发生?第二层是机制:为什么能发生,真实的路径是什么?第三层是模型:有没有一个更一般的框架,能把这一类现象一起解释了?问到第三层,一个问题就开始滚复利了。弄懂了 NO2\mathrm{NO_2} 为什么容易歧化,以后看到氯气、过氧化氢、亚硝酸、锰酸根,都会下意识地问:这个价态在这种环境里稳不稳?两边的价态是什么?热力学允不允许?动力学走不走得动?有没有产物跑掉或者沉淀下来,把平衡拉走?

所以会提问,不是会说“请深入分析一下 NO2\mathrm{NO_2}”这种形式上很开放的话,而是能看出现成的解释在哪里裂了缝。老师说“中间价态既有氧化性又有还原性”,普通的反应是“好,记住了”;有价值的反应是:“那为什么有的中间价态特别容易歧化,有的却能稳稳地待着?就因为它在中间吗?”这个问题一出来,口诀就不够用了。

这也回答了我前面说的“贵人”到底贵在哪里。好老师不一定是因为他知道某道题怎么做,而是他看见你卡住的时候,会突然告诉你:“你这里碰到的其实是微积分里的一个思想。”“你背的是元素性质,该看的是价态之间的关系。”他替你走完了最贵的那一步:把一种说不清的别扭,变成一个可以接着研究的问题。

现在每个人手里都有一个几乎无所不知的大模型,可两个人拿着同一个模型,用出来的可能完全不是同一种工具。一个人只会问“帮我总结一下这一章”;另一个人从“S2−\mathrm{S^{2-}} 能不能变成 SO42−\mathrm{SO_4^{2-}}”一路问到“化合价到底能在多大程度上预测真实的化学行为”。

所以我希望 Notara 做的,不只是替学生回答更多问题,而是慢慢把学生提出好问题的能力练出来。一开始,老师常会在你答对以后再追一句:这里有没有藏着一个假设?能想到反例吗?条件换了还成立吗?白板上每一块也都有“追问这块”,想到什么随时可以接着问。等到有一天,你看到“中间价态容易歧化”这句话,脑子里自己就冒出来:“凭什么?所有中间价态都这样吗?”到那时候,Notara 才算真的教会了你一点东西。

尾声

最开始,我缺的是答案;后来缺的是结构;再后来我才发现,决定学习上限的,是能不能一直提出下一个值得回答的问题。

这一系列片段,就是我对 Notara 的愿景:一个由大模型驱动的笔记本和助教。它的很多设计,都能在这些经历里找到来处。这只是我作为学生的一家之言,之后我还会补上作为老师的那一半:我是怎样为我的学生找到最合适的学习路线的。