我们正在向新域名迁移,3秒后自动跳转
We are migrating to new domain, will redirect in 3 seconds
jackwish.net -----> zhenhuaw.me
证明与示例:研究问题的不同方法
点击查看目录
今年(2018 年)下半年,在和团队其他成员合作时往往感觉到大家的认知方法有较大的差异——在研究一个问题时,我更倾向于从系统的角度比较形式化(formal)、泛化(generic)地进行;而大多数人似乎更热衷于用例子去理解问题。
证明(Proof)
这里的证明是指,在研究一个问题时,采用类似数学系统的证明体系——无论是形式化还是非形式化的。基本的方法是,首先给出被所有人接受的几条关于问题的公理,然后在问题的上下文有逻辑地一步步推演,最终得到想要证明的结论。
这里的证明多是工程系统相关的,和纯数学证明有些不同,一般要带入大量的关于系统的约束。也可将这些约束看做是公理或定理。在论证过程中,每一步得到的结论,都可以看作是关于系统的定理。
在我们想要的是最终的定理之外,证明过程还得到了描述系统某方面的特性的定理。这是非常美妙的事情。当在系统中不断地证明时,新旧结论交织,这对深度理解系统大有裨益。融会贯通说的就是这样的体验。
示例(Example)
示例是指,在研究一个问题时,用某一个具体的示例来讨论。这实际上是说,给定系统一个特定的输入,研究该输入在系统中流动的过程、状态的转换,最后得到系统的输出。
二者的关系
在我的认知中,研究问题的本质应当是证明,示例只是用于帮助理解证明的。这个认知背后的逻辑是,研究的目标是理解系统。而大多数人采用的示例方法,更关注的是,系统对于给定输入的输出。即,大家的目的不同。然而,很多时候,实际上我们需要的是去理解系统,而不是得到特定的输出就认为系统是个什么样子。
在数学的论证体系中,其实也有示例的一席之地——归纳法。但归纳法的区别于常规示例的特别之处是,它尝试描述系统对输入的一种规律。另一种示例用于论证的方法是枚举系统对所有输入的反馈——即穷举法。
在实践中,归纳法由于要求问题满足「可数」、「无穷」的特性往往无法应用,而穷举法应用于复杂系统几乎是不可能的。我们通常看到的示例往往陷入「个案分析」,但却只有「个案」,没有分析推广——这是指只描述了系统在特定输入下的输出,没有揭示系统相关特征的全貌。有限的例子(由于懒惰往往只会举一个例子)只能一窥系统,这会让受众以为系统只有这一类情况,从而出现理解偏差。
证明是理论,示例是理论的一个表现、应用。示例在两种情况下是有重要作用的,一是帮助人们更直观地理解系统,二是反证。不言而喻。
尽管在研究问题时要尽量采用证明的方法,但在尝试说服他人时,更重要的是示例。这是心理学的结论——更生动具体的说明往往更容易让人相信。而且,相当数量的人甚至反对他人用证明和逻辑的方法来描述问题。
对二者的举例
下面举个最简单的例子——乘法——来帮助大家理解这些问题。
乘法的形式化定义是「加法的连续运算,同一数的若干次连加」。一同给出的可能有公式 \(a \times b=\sum_{1}^{b}{a} = \underbrace{a + a + a + \cdots + a}_{b}\) 。理解这个说明后就知道,只要掌握了加法,就可以掌握乘法。最多再举个例子,将公式中的 \(a\) 和 \(b\) 实例化成具体的数值。
示例则不然,因为示例关注的是输出。示例可能会列出 \(2 \times 4 = 4 + 4 = 8\) 、\(3 \times 5 = 5 + 5 + 5 =15\) ,然后就结束了。举例人认为已经说明了什么是乘法(这就是大多数人的现状)。
方法、人、文化
这一节要胡言乱语了。
我开始觉得人的这种认知方式可能是无法改变的,并不是之前认为的「滥用示例是理智的懒惰」。我对自己所经历的事件记性非常差,细节很难记住。例如以往看过的电影几乎无法列出相关的情节。对于事件,我善于记忆的是其中的结构、思想,而不是具体的细节。但很多人则是相反的,他们可能更多的是会记住很多生活的细节经历。不清楚这是否是人成长过程中所形成的特定属性。
前面提过,证明的方法偏理论,示例的方法偏应用。这似乎和西方、东方文化也有关联——西方的科学系统基于推理论证,而东方偏重实践应用。看看吧,即使是前两年吹破天的「新四大发明」也全部都是应用(四大发明也是应用),这和千年天朝的实用主义不无关系。现在深度怀疑科学的中心是否会东移。
曾经和大师讨论过不同的工作风格的问题,因为感觉自己的风格和大家不太一样,其实和本篇有些关联。大师说,这就像武侠小说中不同的剑法流派,有人是气宗,有人是剑宗,而我是气宗。
这其实是清谈,最终输出工程价值才是商业公司的目标。