美文网首页读书笔记
《啊哈,灵机一动》---思维的乐趣

《啊哈,灵机一动》---思维的乐趣

作者: penguin517 | 来源:发表于2016-12-11 19:00 被阅读0次

我唯一知道的事就是我一无所知 ----苏格拉底

本书是数学大师马丁.伽德纳所著,源自于一本科教杂志,为什么这样的集高学术水平和高施教水平的老师不能出现在中国?大多数中国人还是和以前一样,抱着所谓的国学成天研究,喜欢研究人与人之间的关系,对于自然科学的探索,对于大自然的好奇心,这正是我们国人所缺乏的,在如今的现代化社会中,科技的发展主要来自于自然科学,而科技已经是一个国家发展壮大的最主要的推动力,中国社会需要那种对于科学的热爱,那种求真的态度

组合数学

推测一件事情发生的概率,有三种方法
古典概率模型:基本空间由有限个元素或基本事件组成,其个数记为n,每个基本事件发生的可能性是相同的。若事件A包含m个基本事件,则定义事件A发生的概率为p(A)=m/n
几何概率模型:随机试验中的基本事件有无穷多个,且每个基本事件发生是等可能的,这时就不能使用古典概率,于是产生了几何概率。几何概率的基本思想是把事件与几何区域对应,利用几何区域的度量来计算事件发生的概率,布丰投针问题是应用几何概率的一个典型例子

“组合数学 + 古典概率模型"
为求概率提供了相当不错的思路

巧妙的借用

这个方法最早是从老头分马那儿看到的:一个富翁,留下17匹马,分给3个儿子,大儿子分1/2,二儿子分1/3,三儿子分1/9。聪明的老头牵了一头马来,分完后,又牵了回去,大家各得其所

分马问题虽然巧妙,给人一种思维启发,但是不具有普遍性,高中学数学的时候,多项式的因式分解就经常通过先加一个数,然后减去同一个数来达到目的,这才是借用的普遍用法,这种方法改变了的条件的状态,使之利于求解

本书中有这样一个有意思的问题:有一次n人参加的一对一的淘汰赛,估计出比赛轮空的总人数。这种问题当然可以在纸上通过一步一步的演算得出结果,但是如果n比较大,那会是相当耗时,书上有一个很妙的解法,先找到一个最小的m
,使得m + n = A(A是2的x次方),把n和m看成是二进制,m中1的个数,就是最终的解

为什么这样解可以呢?

首先,我们通过巧妙的借用m来使得出现了A这样一个数,因为A是2的x次方,所以A场比赛就可以无人轮空的完整进行下去,现在我们就可以把A看成两个小组,第一组有n个人,第二组有m个人,m组每轮比赛可能会多出一个人,也可能刚刚好,如果是多出一个人,那么把这个人和第一组轮空的那个人进行比赛,这样就能使无人轮空的进行完所有比赛,这样m中多出的人数就是第一组n人中轮空的人数,即二进制表示的m中1的个数

这个巧妙的借用没有改变问题的形态,只是从问题的反面进行了求解

有时候我们单独对于一个解无从下手,只能通过巧妙的借用,达到一个有利于求解的状态,根据这个“借用”和“状态”来求所解

奇偶消除

在《编程之美》上有这么一道题:假如已知一个数在数组中出现的次数超过数组个数的一半,用最快的速度找出这个数。书中给出的解法就是建立两个空间,A和B,有两个属性,一是记录存放的是哪个元素,一个是记录存放该元素的个数,初始值都为0,代表为空,遍历一遍数组,如果A或B为空则把数组元素放入其中一个,并计A或B的值为1,如果出现重复的元素,则在相应的A或B上加1,当A和B都不为空时,A和B同时减一,这样遍历一遍数组,最后留在A或B中的元素就是所求解,这里虽然没有用到奇偶消除,但是把放在A和B中不同元素想象成正负离子,也算是异曲同工

这里用了一种巧妙的方法简化问题的规模,同时,不改变问题的性质,这与本书中的“铺砖理论”如出一辙,在一个地板砖上,有偶数个小方块,每次铺砖必须覆盖到四邻域内的连续两个小方块,怎样快速判断是否能完整铺完

书中给出的解法:
在四邻域内依次标记小方块为红色和白色的,由于每次铺砖必须覆盖到四邻域内的连续两个小方块,这样同色的方块就可以看成具有相同的奇偶性,每次覆盖必须是一对具有相反的奇偶性才行,这样如果最初红色和白色的个数不一样(如19,21),所以不能进行奇偶配对,最后留下会两个同色的方块,则肯定无法按要求铺完,这样就能把问题规模最后规约到判断最后一对方块的奇偶性

运用奇偶性理论可以做两件事
消除问题规模:铺砖问题
判断问题状态是否发生改变:奇偶校验;反过来想,利用某些我们指定的操作,保持问题的状态不变(翻硬币问题,如果每次必须翻一对,那么正面和反面的奇偶性将是保持不变)

数的表示

古罗马人对于数的表示很呆板,简单的用和来表示一个数,聪明的印度人创造了十进制,数的表示清晰易懂,后来计算机的出现,由于硬件的限制,又带来二进制,其实在生活中,有很多事情也可以用二进制来表示,其中的1和0就代表是与非

最经典的一个问题就是1000瓶药,有一瓶毒药,有十只老鼠,药效发作是一天,需要在这一天里面来判断哪瓶药是毒药
小老鼠吃不吃药就是一个1和0的问题,这样可以有2的10次方中表达,每种表达就能对应某一瓶药

如果一系列东西中某些东西只允许出现一次(即可以出现,或者不能出现),用二进制表示是最恰当的,比如说用一系列数字表达0~14,每个数字最多只能出现一次,那么最简洁的表达方式就是 1 2 4 8

图形

切蛋糕

对于一个平面的蛋糕,切n刀,最多能切出多少块?
因为第k刀与之前的每一刀最多只有一个交点,所以第k+1刀最多和已存在的k刀有k个交点,再加上边缘的两个交点,共k+2个交点,这样就会产生k+1条线,每条线把之前的切块一分为二,那么就会产生k + 1个新块

切第一刀,会有两块
如果切了n刀后的,切出的块数位m,那么n+1刀切出后的块数就应该是 m + (n + 1 + 1)

所以f(n)表示切n刀后的块数
f(n) = 1, n == 1
f(n) = f(n -1) + n + 1 , n > 1

又是一个归纳法!!!

逻辑推理

集体智慧推理

基于逻辑推理的归纳法

在多人参与的一个事件中,有一种推理,是基于参与这个事件的所有人有着和计算机一样的准确思维

例1,有三个人,头上可能会是红色帽子或者蓝色帽子,如果某人看到了谁戴了红色帽子,就举手,如果你是其中一位,看见了其余两人举手了(自己也举手说看到了红帽),当过了片刻还没有人说自己头上是什么帽子,要求猜出头上的帽子

有三个人的时候,分别为A,B,C,可以一步一步的进行简单的推理,如果我是A,我如果头上是蓝帽子,那么其余两个人就会看到一个是蓝色一个是红色,B看到C也举手了,说明他看到了红色,这样他就会知道自己头上戴的是红色,但是他不知道,所以我头上的是红色

这种情况可以推论到n个人,即有n个人,头上可能会是红色帽子或者蓝色帽子,如果某人看到了谁戴了红色帽子,就举手,如果你是其中一位,看到所有人都举手了(自己也举手说看到了红帽),当过了片刻还没有人说自己头上是什么帽子,要求猜出头上的帽子

这里就要用到归纳法,如果要用到归纳法,一般是首先确定f(n)代表的是什么,然后确定f(n +1)与f(n)的关系,在这里,是一种很特别的归纳法,f(n)并不能直接表示某个具体的解,而是表示一个事实:f(n)表示的是共有n +1个人,其中一个人看到了n顶红帽(自己也举手说看到了红帽),但是大家都不暂时知道自己的帽子,那么他自己戴的肯定是红帽

当有n个人时,一个人看到了其余的全是红帽(自己也举手说看到了红帽),但是过了片刻还没有人说自己头上是什么帽子,这说明自己的问题可以简化为当自己的帽子为蓝色时,求f(n - 1),这样一直就可以简化成f(2)即最开头的那样,这样就得出了解

例2,即有n个人,头上可能会是红色帽子或者蓝色帽子(肯定有一顶是蓝色的),每一轮主持人都会问偷偷问每个人,他知不知道自己头上帽子的颜色,如果有人发现了,则主持人宣布游戏介绍,问如果有m只蓝帽子(m < n)时,这个游戏能进行多少轮?

如果只有一顶蓝帽子,那么第一天就会被人发现,游戏结束
设如果有n顶蓝帽子,那么在第n天会被人发现,游戏结束

这时如果有n+1顶蓝帽子,即当一个人A看到了n顶蓝帽子,过去了n天都没人说自己发现了头顶的颜色,这时A在第n+1天肯定会知道自己头上的颜色,游戏结束

所以最终答案是进行m轮

上面两个题都是以每个人十分聪明和理性,即按照自己设想的来,大家达到一种共识,因为一个人第一题看到有k只蓝帽子,他需要进行判断的是自己也是蓝帽子,如果没有之前的共识,即“如果有n顶蓝帽子,那么在第n天发现”,他是不可能猜到自己的帽子的
,这类问题只有理论价值

操作设计

能量消耗

许多问题是问最少多少次能够完成,这就可以用能量消耗法来考虑,不考虑具体的操作,先确定总任务量为A,每次操作能减少任务量为B,这样A/B就为最少的次数

例1,举办一个淘汰赛,总参加人数为n,为最少多少场比赛能够决出第一名

首先不考虑怎么安排比赛,最后留一个人,总任务量为n - 1,因为每场比赛会淘汰一个人,每次操作能减少任务量为1,这样结果就为 (n - 1)/1 就为最少的次数

例2,考牛排问题,一个烤架只能放n块牛排,现有m块牛排(m > n),牛排两面都需要烤熟,牛排从生到熟需要k分钟,问所有牛排烤熟至少需要多少分钟

总任务量为 m * 2, 每次减少的任务量为n,所有所需时间为 k * ( (m * 2) / n )(如果不是整除,那么还得加1)
;

例3,有n个医生,m个病人,每个医生都会给每个病人看一种传染病(医生和护士都可能得病),看病的时候手套内侧和医生接触,手套外侧和病人接触,问要使病人之间不传染,医生之间不传染,至少需要多少副手套

这个题如果一个个推的话就很麻烦,其实每个人分配一副手套的一侧,这样需要的手套数就为 (m + n)/ 2

上面三个问题其实都需要一个前提,就是证明 “每次操作能减少任务量B,不多不少,就是B,同样,某次减少任务量后,面对的情况(即问题模型)和减少前是一样的”

相关文章

  • 《啊哈,灵机一动》---思维的乐趣

    我唯一知道的事就是我一无所知 ----苏格拉底 本书是数学大师马丁.伽德纳所著,源自于一本科教杂志,为什么这样的集...

  • #每天一本书+一页笔记# 978《啊哈,灵机一动》

    #一生一万本计划# 10000/978 【阅读日期】20201119 【书名】啊哈,灵机一动 【作者】马丁•伽德纳...

  • 多维度分析问题

    解决问题有时候靠的是灵机一动,有的时候靠的是稳定的思维方式。灵机一动肯定是不靠谱的,稳定的思维方式应该是常态化的解...

  • 增长思维~啊哈时刻

    增长是数据驱动的?:渠道,增长,用户习惯,原因,改进 三个误区: 1.非互联网行业无需增长? 2.增长即裂变? 3...

  • 思维的乐趣

    一个人倘若需要从思想中得到快乐,那么他的第一个欲望就是学习。 只是虽然可以带来幸福,但假如把它压缩成药丸子灌下去,...

  • 思维的乐趣

    二十五年前,我到农村去插队时,带了几本书, 其中一本是奥维德的《变形记》,我们队里的人把它翻 了又翻,看了又看,以...

  • 思维的乐趣

    有一种痛苦的顶点不是被拘押在旅馆里没有书看、没有合格的谈话伙伴,而是在被放在外面,感到天地之间同样的寂寞,面对和你...

  • 思维的乐趣

    熟悉王小波的人知道,标题是他一本书的名字,我其实没看过这本书,它只是躺在我的豆瓣书单里,等待着被开启。 周末的下午...

  • 思维的乐趣

    在感受和体验的基础上我们会产生很多想法和愿望,这些想法慢慢汇总就成为了我们思考问题的模式和处理问题的方法,我们...

  • 思维的乐趣

    3月8日的功课又延后了,应该是昨天被女神节刷屏了,第一次感觉身为女人很好。 从小到大,我一直讨厌自己女孩的身份,总...

网友评论

    本文标题:《啊哈,灵机一动》---思维的乐趣

    本文链接:https://www.haomeiwen.com/subject/waupmttx.html