不是说别的什么高级的证明,就是说本科一年级数学分析里面的东西。在我还是大一大二的时候就有这样的想法,觉得这两件事情非常的像。写一个干净的证明,写一个能运行的程序,基本上是一样的。
Argue一下:
1. 绝对冷酷的逻辑要求,写程序要求比写证明还要高。这个绝对是共同点,应该没有第三件事情还有这样的需求。
2. 程序设计讲究变量的作用域,局部变量和整体变量的关系。数学证明写长了难免反复使用i,j,epsilon这样的东西。它们各自的作用域是否清晰。
3. 程序设计要求先定义后引用。写证明的时候要强调变量之间的依赖关系。一多半的错误证明是循环依赖。
4. 写程序要模块化,写证明也一样。几个步骤是不是分得清楚,每个模块的进出口参数是不是明确。调用时类型是不是匹配。
5. 写程序变量命名要能表现变量的内涵,证明中上下标也是一样。
6. 程序要注释,写证明也不能懒
7. 好的程序背后都有好算法,好证明需要好想法。
一直都这么想,认真归纳起来不是很具体。中学编程练得很多,大学学数分感觉完全没困难。很习惯这种冷冰冰的表达方式。
今天还想啊,面向对象的思路在数学中也有啊。定义什么是群是定义一个类,群同态基本定理是个方法。定义李群比方说就是类的继承(两个父类?),李群的同态就是继承父类的方法。具体到某一个李群就是类的一个实例。(这个貌似不太算,好像跟数学没太多关系。面向对象本身就具有这种抽象的能力。或者说面向对象的抽象思路和数学概念的抽象思路有那么一点类似。那么范畴,函子是不是靠谱一点?感觉就是虚基类、虚方法了。)
注:我学面向对象的时代很久远了。现代的概念应该发展了不少,不知道变成什么样子了。比如多继承,当时应该是没有实现的。
2025 年游戏总结
2 周前
1 条评论:
我程序一直写不精确,T_T极其讨厌编程,因为调试实在太烦了!其实我可以很快就写出一个伪代码的框架但是实现总是弄不好>_<
证明也是一样的问题啊T_T不过证明比编程好多了,讨厌盯着计算机调试!
发表评论