理解具体的例子往往比理解抽象的概念容易得多。很多学生看完概念后似懂非懂,看完例子后才“恍然大悟”。合适的例子还能帮助学生加深印象或发现特殊情况。
然而,一些学生过分依赖具体的例子来理解知识。经常有学生说“还是不太懂,能再举个例子吗”。学生最后声称自己懂了,但可能只是大量例子拟合出来的条件反射。问题在于抽象能力不足 + 不习惯数学语言,这对数学板块来说是致命的。
应该鼓励学生自己构造例子。
算法竞赛不是数学竞赛,证明的完整性和严谨性都不是第一位的!
尽力提供“自然”的证明,让学生把握证明的整体思路,了解每一步的动机。
哪些证明应该深入讲解?
在这些情况下,可以考虑少讲或不讲证明:
如果未给出详细证明,可以提供资料(讲义、博客等)供感兴趣的学生课后查阅。
与其他模块相比,数学模块的代码讲解没有什么特别之处。
PPT:质数与因数、筛法
质数与因数
唯一分解定理:思考数论问题的重要突破口
筛法
朴素筛:调和级数复杂度
欧拉筛:怎么保证每个数只被它的最小质因子筛一次
讲义:最大公约数
裴蜀定理
可以用这样一个场景引入:
一个商店只接受面额为
和 的两种货币,可以找零。你能不能购买价格为 的商品?价格为 的商品呢?价格为 的商品呢?
扩展欧几里得算法
上一次的除数除以上一次的余数,直到余数为 快速幂
举例子:
费马小定理
费马小定理的证明比较独特,几乎没有可扩展性。但有一点比较重要,应该作为常识记忆:
若
乘法逆元
逆元素是指可以取消另一给定元素运算的元素。初学者往往难以理解逆元,可以类比倒数。
一定要搞清楚几个问题:
有些逆元不存在的题需要用到 “扩大模数,保留因子” 的技巧,先不讲,学生遇到再说。
威尔逊定理
讲法:逆元成对存在。
很简单的小定理,有印象即可。题目很少见,也可以出得很难,如 CF1957 E. Carousel of Combinations。