计算实验:让程序产生猜想而非替代证明
约 14 分钟
程序能快速枚举例子、寻找反例和可视化结构,是数学研究的显微镜。但有限计算不能直接证明无限命题;代码错误还会制造漂亮的假规律。计算实验必须可复现并与证明任务分开。
先手算小例子
在编码前手算三到五个结果,明确输入、输出和边界。这些成为单元测试。若程序连小例子都对不上,扩大规模只会更快地产生错误。
精确算术
整数、分数和符号对象优先使用精确表示。浮点比较需容差,并分析舍入;看到 0.999999999 不可草率当反例或定理。
系统枚举
说明搜索范围、去重规则、对称性和停止条件。只展示支持猜想的例子属于选择性报告;搜索应主动针对边界与最可能失败处。
从数据到命题
图形或数列提示规律后,写成带量词、条件和结论的精确命题。再问哪些条件必要,能否构造反例,以及证明可能用什么不变量。
保存环境
提交代码、版本、随机种子、输入和输出摘要。大规模结果用哈希或检查点验证,并让第二实现交叉核对关键案例。
性能优化前保留朴素参考实现;两者结果逐项一致后再相信加速版,防止向量化或并行引入静默错误。
任务:为候选命题写枚举程序、手算测试和反例搜索;报告计算支持的范围而非宣布证明。
小纸条
计算验证了一百万个例子,为什么通常仍不能证明全称命题?