数学和科学、生活

今天这个例子就发生在上一个帖子的作者——一个差不多懂了系联性思考的硕士学生身上。同样非常有借鉴意义。我整理出来,分享在这里。

我用doodle设立了一个投票来确定这个学期的研究小组讨论时间。需要每一个参与讨论的人来参加这个投票,提供对自己来说可以实现的时间,然后,doodle就会做好一张网页表格,把每一个选项放在列上,每一个参与者的选择放在行上。我这个创建投票的人只需要看这张表就可以确定一个对所有人或者大多数人都能够用的时间了。

然后,这个学生选了三个选项。我就很好奇。问:为什么这样选啊?具体选择什么当然我也关心,不过我更好奇为什么这样选,真的只有这三个时间是可行的对这个学生来说?经过一番努力的沟通,发现,这个学生是这样来理解这个投票的。所谓投票就是在一堆选项中选自己最喜欢的,然后,最后,统计每一个选项有多少人喜欢,创建人选择得票最多的就行了。

确实,一般的称为“投票”的东西确实如此。

然后,学生意识到,可能我这么问,则表示这个背后的确定最后的选项的过程可能并不是这样。就说,我觉得可能这个doodle的程序不是这样运作的,得去想想这个程序如何运作。

另两个学生这时候提示,确定讨论时间的运算,实际上是在做集合的交集:把每一个参与者的集合拿过来,计算所有人的交集。

于是,首先,这个程序背后的算法不用去猜的,那就是计算交集,而且这个计算的人,就是我,doodle仅仅提供这张大表而已。

其次,更加根本的问题是,数学描述、数学计算过程或者软件系统背后的算法,都是为了解决某个具体问题的。我们只需要从问题开始思考,而不是从计算过程、软件算法开始思考。如果这个算法或者过程不能解决这个问题,那么,是算法和过程错了,而不是问题错了。

在具体这个问题上,就是你只需要思考确定一群人讨论的时间是什么样一个问题就可以了:由于首先的要求是要找到满足绝大多数人的选项,而不是选择所有人合起来最喜欢的选项,集合的并是最好的数学描述,而不是数票数。当然,如果每一个参与者把自己的喜好完全地揭示出来,则数票数和求集合的并是等价的。但是,一旦参与者用数票数的思路来提供信息——也就是仅仅选择自己最喜欢的选项而不是所有可能的选项(当然,将来还可以做更复杂的赋权),则两者就不等价了。结果上,很有可能这个参与者的最喜欢的选项被完全忽视。

因此,除了没有从问题开始思考,从情景开始思考,而是去猜背后可能的计算过程或者算法,还有另一个层面的问题:套路。当一个学生面对一个叫做“投票”的问题的时候,很可能就会直接套用投票的思路,而不去思考实际问题和情景。套路,真的要不得啊。面对任何具体问题,都要去思考,这个问题中有哪些因素,这些因素决定了我们必须用什么样的计算或者分析,而不是生搬硬套。

后来,我发现,这样来做会议时间投票的人还不少。看来,看不到“数学就是对问题和思考的表达,对问题里面的关系的描述”的人,还是真不少啊。可能大多数人的思考方式,真的是套路——先看看有没有一个自己知道如何应对的相似的,尽管可能仅仅是名以上、名字上相似,而不是关系上相似,问题,然后把这个问题里面的应对方式直接照搬过来。

顺便,关于这个问题,我们正在设计一个实验研究:一个情景A,一个情景B,两者具有一定相似性,但是,如果真的想明白则两者不一样,而且,我们保证实验参与者真的两者都是之前就了解的,甚至教过的学过的,然后我们来让实验参与者做决策。在这里,我们想探讨两个问题,知道(学过的能通过考试的)到能用(能够面对实际情景)的距离,以及基于套路而不是基于理性思考的决策的普遍性。将来我来报高这个研究结果。

用这个例子,来体现什么是数学,以及数学和科学、生活的关系。