第1卷 第1章 数列和数学模型
从数列智力题没有唯一答案出发,区分有限前缀、无限延拓、显式式、递推式与生成过程,用反例和区分实验建立数学建模意识。
学习目标
- 能解释数列如何作为带索引的函数,并区分观测数据、生成规则与模型假设
- 能构造至少两条复现同一前缀的无限延拓,用反例说明为什么下一项不由有限数据唯一决定
- 能比较列表、显式式、递推式和生成过程,说明每种表示适合的验证任务
- 能设计一次保留新数据的区分实验,回答“什么新观测会让当前猜想失败?”
先对“下一项是什么”保持怀疑
看到 1, 2, 3, 4, ...,很多人会回答 5。这个回答可能符合出题者意图,却不是由前四项逻辑推出的唯一结论;你还可以构造第五项为 29,甚至构造无穷多种后续。
本章解决的不是“怎样猜得更像”,而是“怎样知道猜想凭什么成立”。眼前只有有限观测,后面却有无限索引;如果没有补充规则类别、背景机制或选择标准,就不能把一个看起来自然的续项写成无条件定理。
先预测:1,2,3,4 的第五项有哪些候选?如果要求“次数不超过 1 的多项式”,答案会不会变得唯一?若再要求来自某个计数过程,选择标准又会怎样变化?
数列和数学模型
本节的数列和数学模型把一列数字拆成两层:数列是按索引组织的对象,数学模型是说明这些值怎样产生、哪些规则被允许以及怎样检验预测的承诺。省略号只表示还有后续,不会替作者补写规则。
↡把索引集合中的每个位置映射到一个值的函数,也就是带顺序的无限值表可以形式化为
这个式子在说:索引起点、定义域和值域都属于定义;从 开始和从 开始,哪怕写出同样的字母,含义也可能不同。整数数列、实数数列和符号序列允许的运算也不一样。
模型还要写出初值、参数、预测范围和失败标准。只列出十项是在报告观测;给出规则并说明它能生成第十一项之后,才是在提出模型。若规则来自计数、物理或程序,背景机制还会进一步限制可接受的形式。
数列智力题没有唯一答案
数列智力题没有唯一答案,不是说数学任意,而是说题目常只给了有限观测,没有声明模型族。对 1,2,3,4, 给出第五项 5;另一个同样复现前四项的规则可以让第五项变成 29。
只限制有限位置。只要有一个函数 复现前 项,就可以加入一个在这些索引上为零的扰动:
这个式子在说:当 时,乘积含有零因子,所以 ;当 时,附加项通常不再为零。改变非零常数 ,就得到许多不同的后续。
例如取 ,则 。5 和 29 都与观测相容;要排除 29,必须补充“只允许一次式”等条件,而不是只重复检查前四项。
↡把一个有限前缀补成在更大索引范围上定义的完整数列 不是唯一的默认答案,而是模型选择的结果。选择一次式、低次数多项式、固定阶递推、周期规则或计数机制,会得到不同的延拓;每一类都应该把假设公开。
模式、规则与猜想
模式、规则与猜想是三个不同层次。模式是观测中重复出现的外观;规则是能生成后续并可被执行的定义;猜想是暂时接受、等待新证据检验的命题。把三者混在一起,最容易把“像”误写成“必然”。
一个好的猜想必须附带可区分的预测:模型 A 和 B 若在前 20 项相同、第 21 项不同,就应该优先计算第 21 项,而不是继续确认前 20 项。证据的价值来自它能否淘汰候选,而不是它是否让当前模型看起来更舒服。
↡被允许的规则集合,例如次数受限的多项式、固定阶递推或某类生成机制决定“唯一”是什么意思。若模型族是一阶多项式,四项数据足以确定规则;若模型族允许任意函数,则同一前缀仍有无穷多种无限延拓。没有模型族,唯一性问题没有完整语义。
↡能够被某个新观测或逻辑反例推翻的性质;无法失败的说法通常没有预测力的猜想会提前说明什么结果会让它失败。数学定义可以从规则推出无限结论;经验模型则应保留不确定性,直到新数据或证明把范围说清。
同一数列的四种表示
列表、显式式、递推式和生成过程各把一种信息放到前台。列表最贴近观测,却不定义无限后续;显式式支持随机访问,却可能隐藏机制;递推式强调相邻状态,却依赖初值;生成过程解释对象来源,却要证明无遗漏、无重复和会终止。
以平方数为例:
这个式子在说:显式式直接给出第 项,递推式说明从 到 增加奇数 。两种写法描述同一数列,但证明等价需要归纳或代数推导;只写递推而没有初值,会留下无穷多个平移后的数列。
↡用前面若干项和初值规定下一项的关系式,例如 aₙ₊₁=aₙ+2n+1适合描述状态演化和构造证明;显式式适合快速定位,生成过程适合解释“为什么出现这些数”。比较表示法时不要问哪一种永远最好,而要问当前任务需要哪种证据。
因数和:机制比外观更有解释力
令 为 的所有正因数之和:
这个式子在说:数列的生成规则来自索引背后的因数结构,而不是相邻项之间必须有同一种加减操作。前六项是 1、3、4、7、6、12,表面并不规则,但每一项都有可复查的来源。
若 ,则
这个式子在说:因数和也能由质因数的重数组织起来;机制解释让数列可以迁移到新索引,而不是只记住一串数字。
模型选择与区分实验
模型选择至少要检查六件事:是否复现全部已知项,是否满足值域和背景,参数是否过多,能否生成新预测,计算是否可行,以及失败时怎样被识别。简洁性可以参与选择,但必须说明是次数、参数个数、程序长度还是机制复杂度。
验证数据必须与拟合数据分开。若模型 A 与 B 已经在历史数据上相同,下一步应该寻找预测分歧,不应该再做同样的历史检查。若所有可获得数据都已被用于拟合,就诚实标注“当前相容”,不要宣称“已经证明”。
type Model = (index: number) => number;
export function firstDisagreement(
a: Model,
b: Model,
start: number,
end: number,
) {
for (let index = start; index <= end; index += 1) {
if (a(index) !== b(index)) return { index, a: a(index), b: b(index) };
}
return null;
}这个小函数不负责证明哪个模型“真”,只负责寻找最有信息量的区分点。把失败位置留下来,下一轮猜想才有可复查的起点。
观察、猜想、修订的闭环
发现一个模式后,先写成候选规则,再用反例或新索引主动攻击它;如果失败,修订模型族、增加条件或承认数据不足。这个闭环比“猜中一次下一项”更接近数学建模,因为每一步都能说明证据改变了什么。
小结:有限观察,无限可能
- 数列是带定义域和值域的函数,省略号不提供生成规则。
- 有限前缀可以支持多个无限延拓,唯一答案需要模型族和选择标准。
- 模式、规则与猜想分别是外观、生成机制和待检验命题。
- 列表、显式式、递推式和生成过程服务于不同的访问、证明和解释任务。
- 区分实验应保留新数据,让失败路径推动模型修订。
分步实验:从前缀走到模型
1. 观察:切换同一前缀的候选模型
先预测 1,2,3,4 的第五项,再切换一次、平方和分段三个模型。记录每个模型额外假设了什么,不要把默认的一次模型当作题目明说的条件。
练习与答案
练习
- 问题 1:数列和数学模型
解释“数列和数学模型”中观测、规则和模型假设的区别,并说明为什么列表 1,2,3,4 不能单独定义第五项。
- 问题 2:数列智力题没有唯一答案
围绕“数列智力题没有唯一答案”和“有限前缀与无限延拓”,构造两条复现 1,2,3,4 的规则,并写出它们的第五项。你的构造是否违反了题目未声明的条件?
- 问题 3:模式、规则与猜想
针对“模式、规则与猜想”,比较列表、显式式、递推式和生成过程,并设计一个可证伪的区分实验:你会保留哪个新索引,为什么?
- 问题 4:改 Demo 代码
扩展 firstDisagreement,让它同时检查值域约束,并显示“当前相容”或“出现反例”。重置按钮应回到一次模型与平方模型的比较,而不是保留上一次测试索引。
名词解释
本章出现的专业名词,用大白话再讲一遍。
- 数列
按索引排列的一列值,可以形式化为从索引集合到值域的函数。
- 有限前缀
已经观测到的前若干项;它只约束这些位置。
- 无限延拓
把有限观测补成更大范围上定义的完整数列。
- 递推式
用已知项和初值规定下一项怎样产生的关系式。
- 模型族
允许拿来解释数据的一组规则,例如次数受限的多项式或固定阶递推。
- 可证伪
存在某个新数据或反例能够推翻它,而不是任何结果都能被解释。