大学生活的乐趣不光体现在吃喝玩乐上,更重要的是它所提供的自由学习的场所。你可以在网上搜索课表,看看什么时候什么教室有什么牛B课,记在手机中的待办事项中,到时候到那个教室去旁听。旁听的乐趣就在于,你可以去学任何你想学的东西,不用交作业,不用怕点你名,不用记笔记,不用考试,只需要挂个耳朵在那儿听牛B东西就行了。前天一大早就被兔子叫起来,跟着一起去旁听了一节数理逻辑。
    课程内容很简单,毕竟也才只讲了两周,一切都是很基础的。老师讲得很好,对联结词、命题公式、真值表等概念都说得很细致,即使完全没接触过这方面东西的人也能弄明白。作为信科的专业课,老师也简单提到了SAT问题:给定一串由AND, OR, NOT, 逻辑变量和括号组成的表达式,是否能给变量取值使得整个表达式为真?如果存在这样的“成真赋值”,我们就称表达式是一个“可满足式”。最简单的例子,p∧q就是可满足的,把p、q都取真即可;p∧(¬p)就不可满足,该式无论如何都为假。判断一个逻辑表达式是否可满足是一个经典的NPC问题,目前除了枚举之外还没有更好的算法。
    还有一种逻辑表达式,不管初始值是什么,整个式子恒为真。例如,p∨(¬p)就是永真式。看起来,判定一个式子永真比判定一个式子可满足似乎要困难得多,因为前者比后者要强得多。而事实却是,这两个问题可以(在多项式的时间内)相互转化,它们在复杂程度上并无区别。如果你找到了一种可满足式判定算法,你便立即拥有了永真式判定算法。换句话说,你的算法若能找出一个成真赋值,你就能利用该算法立即得出该式所有赋值结果是否都为真。这个问题的问法很有艺术性,它有意屏蔽掉了永假式判定这一桥梁。事实上,一个表达式要么可满足要么永假,而从永假到永真只有一步之遥——只需要在最前面加一个“非”即可。也就是说,如果有一个程序,它能告诉我逻辑表达式A是否可满足,那么我就把¬A输进去:如果它说¬A不可满足,意即¬A的任何赋值结果均为假,反过来A就是永真的;如果它说¬A可以满足,意即程序找到了¬A的一个成真赋值,反过来便成为了A永真的一个反例。

这个例子极具启发性。这不是一个题目,而是一种思想。我一年半的大学学习中遇到的最好的老师是大一上的高数老师雷功炎教授。他的作业有一个特点:你可以不断使用你已经得到的结论去解决新的问题,新问题的解决又给后面的题目打通了捷径。在完成作业的过程中保持这样的思想,所有的题目都可以顺水推舟,一气呵成。他在课堂上反复强调,这种事半功倍的偷懒办法正是数学最吸引人的地方。
    这种思想是所有数学家和数学爱好者引以为傲的思想!以至于任何一个喜欢数学的人看完下面这段文字都会哈哈大笑:

一天,数学家觉得自己已受够了数学,于是他跑到消防队去宣布他想当消防员。消防队长说:“您看上去不错,可是我得先给您一个测试。” 消防队长带数学家到消防队后院小巷,巷子里有一个货栈,一只消防栓和一卷软管。消防队长问:“假设货栈起火,您怎么办?”数学家回答:“我把消防栓接到软管上,打开水龙,把火浇灭。” 消防队长说:“完全正确!最后一个问题:假设您走进小巷,而货栈没有起火,您怎么办?”数学家疑惑地思索了半天,终于答道:“我就把货栈点着。” 消防队长大叫起来:“什么?太可怕了!您为什么要把货栈点着?” 数学家回答:“这样我就把问题化简为一个我已经解决过的问题了。”

“利用已有结果”的意义是广泛的。将已证结论作为引理来搭建数学大厦是其中一方面,这里我们还看到了另外一方面:结论适用范围的扩展。在面对一些具体的新问题时,把问题的形式稍作变换,我们便可以直接套用老问题的解法,从而扩大了已有解法的适用范围。特别地,对于一个判定性问题来说,如果有一个很强大操作因子能够让每一种可能的结果取反,那么存在性验证就可以直接转化为普遍性验证。类似的例子还有很多。下课之后我便开始思考,马上就想到一个:图中从点A到点B的路径长的奇偶性。如果我有算法能判断从A到B是否存在长度为奇数的路径,那么我就能直接套用该算法验证该图中从A到B的所有路径是否都是奇数步。方法和上面的一样:在点A前面加一个超级源点A',让A'和A相连。于是,每一条从A到B的路径都对应了一条从A'到B的路径,其中后者恰好比前者多一步。询问程序A'和B之间是否存在奇数步的路径,如果存在,表明从A到B有长为偶数的路径,否则便可说明从A到B的所有路径长度都为奇数。另一个有趣的例子是,假如我能判断一个含变量的代数式等于0是否有解,我就能判断该式子是否恒等于0。这又是怎么做的呢?不妨把原来的式子记作E,构造一个新的式子E/E - 1。那么,新的式子等于0当且仅当原式E不等于0。接下来的事情就又和刚才一样了。

记得有一年我搞了一次NOIp普及组的模拟赛,里面有一道题是这样的:给你一个带实数边权的无向图,所有权值都大于1,然后叫你求一条从A到B的权值乘积最小的路径。只要了解Dijkstra算法原理的人都能想明白,该算法同样适用于权值乘积最小问题。但不出我所料,还是有很多人问我,为什么Dijkstra算法在这里仍然可以用?我的回答很简单。你根本不需要明白Dijkstra算法的原理你也能想到,这道题目依然可以用Dijkstra算法。只需要把所有权值全部取对数,权值乘积的问题立即转变为了权值和的问题;求出了最短路之后,再把所得结果当作指数还原回去即可。

这学期我还选了一门叫做“古今数学思想”的通选课,那天下午是整个学期的第二节课。超越“数学问题”,站在“数学思想”的高度上,你会有一种全新的体验。在随后的两个小时中,这一点得到了完美的印证。印象最深的是课件上的一句话,短短几个字一针见血地点破了Taylor展开的真谛,让我顿时领悟到Taylor展开的真正价值,我一瞬间觉得当时学高数简直是白学了。课件上说,Taylor公式把函数展开为级数,其伟大意义就是“把不可数个数据简化为了可数个数据”。原本是一个连续统上的函数,上面记录了不可数个点的位置信息;用Taylor公式一变,只需要可数个系数就把所有东西都描述了出来,并且可以在一个宏观的角度上取得近似。牛!学了那么久的高数都没体会到这句话,做了那么多Taylor展开的题目真是全白做了!

前天最牛B的收获是这门课上,老师讲到的代数基本定理的拓扑学证明。代数基本定理告诉我们,每个(次数不少于1的)复系数多项式在复数域中至少有一根。按照老师的原话,用拓扑学证明代数基本定理简单得令人难以置信。老师讲得飞快,课堂上我的确没怎么听明白,但恍惚记得《什么是数学》后面的章节里有这个东西。回去一翻,果然是一个精采绝伦的证明,命题本身的重要意义和证明过程之简洁造成了一种出人意料的华丽的不对称效果。随便写一个函数,比如

f(z) = (2+11i)z^4 + (7+3i)z^3 + (12-7i)z^2 + (-8+3i)z + (-2-i)

想想看,对于某个r,如果我们取遍所有满足|z|=r的点,对应的f(z)将画出一个什么样的轨迹?z点的轨迹说穿了就是从某个离原点距离为r的位置上出发,绕原点一周后又回到原来的位置;由于函数f显然是一个连续函数,因此f(z)描绘的轨迹显然也应该是从某一点开始连续地运动,最后返回原位,形成一个封闭的曲线。r的大小决定了封闭曲线f(z)的大小。当|z|=0时,f(z)也就是一个点,若函数有常数项的话这个点应该异于原点;当|z|充分大时,最高次项将远远超过其它项,因此封闭曲线可以近似认为是z^n,它是一个绕原点走了n圈的圆(因为此时z^n = r^n * (cos(nθ)+i*sin(nθ)) )。

对于一些不大不小的r,情况将介于两种极端情形之间。例如,当|z|=1时,f(z)形成了一个绕原点两圈的封闭曲线(如图蓝色曲线所示,紫色圆圈则是所有的z点)。可见,随着r的扩大,f(z)从一条内部不含原点的封闭曲线变成了一条绕原点整整n圈的曲线。但是,f(z)是一个连续函数,当r值增大时曲线也应该是连续变化,绕原点的圈数怎么会变呢?这只有一种可能:曲线在连续运动的过程中经过了原点。嘿!这就是我们要证明的结论啦!

似乎是对数学证明有一种通感。一想到f(z)一脸无奈地耸耸肩说“没法子了,只能过原点了”时,我就会大笑起来。“滑稽的证明”、、“让人会心一笑的证明”、“简单得富有喜剧效果的证明”可能是我对证明的最高评价了。能获得这个评价的证明不多,我目前一下子能想到的如此精彩的证明只有下面这两个:

http://www.matrix67.com/blog/archives/33
http://www.matrix67.com/blog/archives/1006

随记:普遍性验证、数学思维、代数基本定理及其它相关推荐

  1. 聊一聊数学中的基本定理(三)——代数基本定理

    早点关注我,精彩不错过! 在前面两篇文章中,我们聊透了算术基本定理的证明和意义,相关内容请戳: 聊一聊数学中的基本定理(二)--算术基本定理的价值 聊一聊数学中的基本定理(一)--算术基本定理的证明 ...

  2. 中国人数学好,数学思维差?

    小天经常可以看到在微博热搜吐槽歪果仁数学不好的段子,比如6.8,我们习惯给11.8,让收银员找5块钱,但歪果仁就不行啦,这样他们会更乱! 所以我们容易觉得中国人数学好,算数特别快还准!但算术,只能说是 ...

  3. 概率论与数理统计思维导图_数学思维到底有多重要?这个学科往往影响国家实力...

    原标题:<关于加强数学科学研究工作方案>日前发布--数学思维今何在 密码学家王晓云日前获得了2019年未来科学大奖数学与计算机科学奖.她提出密码哈希函数的碰撞攻击理论,推动帮助新一代密码哈 ...

  4. 柳维尔定理与代数基本定理

    1. 前言 本文主要介绍代数中的一个重要定理:代数基本定理.它的内容很简单,可以归纳为 代数基本定理:n次复系数多项式方程在复数域内有且只有n个根. 从它的名字来看,"基本" 二字 ...

  5. 找出所有层级_数轴上的行程问题1:你的数学思维水平在哪一个层级?

    前言:对于很多学生来说,从小学六年级到初中一年级,数学学习仿佛一下子迷失了方向,相当长时间找不到切入点,无法适应初中数学的学习.究其根本原因,是思考问题的方式出了问题,小学熟知的算术思维迟迟不能跨越. ...

  6. 张景中院士:好的老师应当向学生展示数学思维的美妙

    做有趣的事情.自己心甘情愿要做的事情,做起来就快乐:做枯燥乏味的事.不得不做而又不想做的事.做起来就痛苦.但这有趣或枯燥又因人因时而异,饮酒.下棋.踢球.学习数学都是这样. 学习数学的乐趣类似于下棋, ...

  7. 二元函数最大最小值定理证明_代数基本定理,用复数证明所有多项式函数都有根...

    根据代数基本定理,每个多项式在其定义域内的某个点上都有一个根.虽然这个定理早在18世纪初就已经被提出(由三位数学家,彼得·罗斯,艾伯特·吉拉尔和勒内·笛卡尔提出),但是第一个(非严格的)证明是在174 ...

  8. 【数学思维】最大值与上确界

    [数学思维]最大值与上确界 假设 A A A是一个集合. 如果 m ∈ A m\in A m∈A并且 ∀ a ∈ A , a ≤ m \forall a\in A,a\le m ∀a∈A,a≤m,那么 ...

  9. 复变函数可视化以及代数基本定理

    复变函数: 我们生活的世界是三维的,需要三个坐标信息才能清晰描述一个物体的位置,所以,人类很容易就能够理解三维以下的物体形状,二维笛卡尔坐标系和三维立体坐标系就是用来分析此类问题的数学工具. 但对于复 ...

最新文章

  1. ERP实施过程中的十个“拦路虎”
  2. libvmi编译问题
  3. Mysql格式化日期时间
  4. 论管理员的不作为!!!
  5. matlab符号函数绘图法_转载:MATLAB 符号函数作图
  6. 提高CSS文件可维护性的五种方法
  7. node.js 实现udp传输_Node.js实战15:通过udp传输文件。
  8. 主成分分析(PCA)及其可视化——matlab
  9. rsyslod服务配置
  10. 华为慧通值不值得去_华为 Mate 40太难抢,上半年的P40Pro还香吗?
  11. php mysql delete_php教程之PHP MySQL Delete
  12. tsp的理论和实践(10)tsp系列暂停一下
  13. 从二叉树到完全二叉树
  14. svn 把本地的项目,上传到服务器端
  15. nlp基础—4.搜索引擎中关键技术讲解
  16. ACC 时间范围处理
  17. 月结 sap_SAP的SD模块:从DN到Billing再到Invoice
  18. 使用RNN构建机器翻译模型
  19. 搭建一个socks5代理 解决狗东对ip限制nolanjdc无法获取短信问题(搬运工unke原创)
  20. oracle数据表空间与数据文件,oracle的表空间及数据文件

热门文章

  1. HNOI2006 潘多拉的盒子
  2. Ecotourism--生态旅游
  3. 【报告分享】服装零售行业洞察报告-有赞伯俊(附下载)
  4. Python PEP8 基本常用规范
  5. chart.js 参数说明
  6. 取得system权限
  7. 模式识别与机器学习作业——SVM(Python实现)
  8. 【Docker】二 Docker安装
  9. 4-14 递归求阶乘和 (10分)
  10. 增量式pid分析 及 参数整定