85. 电脑原理03:布尔以及布尔代数以及吐槽

1 翠花,上干货

开始之前,先讲一句干货,以满足一下在后台留言的一些同学,每一期都有人留言说讲的不通俗,没有干货,作为一个负责任的播主,还是听取听众的意见,先把干货端出来,这次音频的内容是讲布尔代数很重要。就这样,布尔代数很重要,只需要知道布尔代数很重要就可以了,至于为啥重要,根本没必要知道,好了,干货结束了,想听干货的同学可以换个电台了,接下来的时间开始吐槽。

2 布尔变量无处不在

如果听众中有程序员或者计算机系的学生,一定知道几乎所有常用的编程语言中,不管是C还是C++,还是Java,还是Python,Ruby,在这些编程语言里,常用的数据类型中,一定有个非常重要的类型叫布尔类型。布尔类型里面就是两个值,一个是0,一个是1,或者一个是True,一个是False。有些同学可能会觉得,这简直太无聊了,谁会搞这个发明呢?有这种想法的人并不奇怪,搞出这个发明的人叫乔治•布尔,他发明了一种数学,叫布尔代数。布尔代数发明以后的接近100年中,几乎所有的地球人也是这个想法,谁TMD会用这种发明呢?因此,布尔同学这么出名,并不是因为布尔代数,而是因为微积分以及差分方程这两个数学的分支,只是到了最近,尤其是在1937年一位伟大的计算机先驱香农发现了布尔代数的巨大作用,布尔代数这才开始传播到朋友圈里,然后每个人都开始谈论布尔代数,就好像他们一直以来就很懂一样。

说起来有点讽刺,布尔先生在代数,微积分以及连续数学方面取得的成就当然也是无可比拟的,但是和他在布尔代数方面所取得的成就比起来,还是要黯然失色许多,但是,这么伟大的成就,竟然被埋没了接近100年才被人所发现。

有这样一种可能,在计算机领域,所有的量都可以转换为简单的枚举,只是今天人的认识,还不够深入,有一些已经实现了,有一些还没有实现。不过呢,我认识水平也是非常的有限,不敢对未来做出判断。作为我这个公众号——软件那些事儿——我也只敢光讲一讲布尔先生的生平事迹,对我来说,这些故事已经非常非常的精彩了,尤其是布尔代数如何从默默无闻到现在在计算机领域的无所不能,这个故事起码给我无限的感慨,如果没有香农慧眼识珠,布尔代数也许还要被埋没多少年也不一定,我们这个世界上绝大多数的人都没有什么眼光和远见,大部分人只是跟跟风,发发朋友圈。

布尔先生还算不错了,毕竟他生前也算风光,另一个非常非常悲惨的数学家,就是创立了现代集合论,也就是今天我们微积分的基础,或者说是实数理论的基础,这个人的名字叫康托尔。他提出了集合的等势概念,包括无穷,可数无穷等一系列概念,并且给出了严格的证明。他运气不太好,像布尔代数无人问津,他的无穷概念有人问津。他的理论被喷子盯上了,当时数学界的网红叫克罗内克,由众多的粉丝,当然,他的理论在今天来看是错误的,但是当时来看,他是正确的。现在,我们仍然可以看到克罗内克的名字,就是在线性代数的课本上,我们会学到一个叫克罗内克积的东西,就是这个当年喜欢攻击别人的数学家。克罗内克发动了一波又一波的喷子大军,在媒体,报纸杂志上对康托尔口诛笔伐。

结果康托尔同学的心理素质不是很好,而且反击的手法也不够简单粗暴有效,喷子们对康托尔采取的是谩骂和讥讽,结果康托尔同学竟然公开发论文,对他的理论进行严格证明,,使用了归纳反证法来论证他的理论是正确的,然后让喷子们来找出逻辑漏洞。人家是喷子,哪管什么逻辑漏洞,反正也看不懂啥叫归纳反证法,继续喷。康托尔最后患上了严重的抑郁症,最后精神失常了,最后在一个精神病医院很凄惨的死去了。然后,又过了很多年,喷他的人也都死了以后。后人才发现,康托尔是正确的,然后我们整个现代的数学大厦的根基,康托尔的集合的理论功不可没。好了,我又跑题了,强行拐弯拐回来,继续讲布尔先生。

3 布尔的生平

国内喜欢找一些人当励志的典型,但是励志的典型并不多,尤其是中国几千年延续到今天所采用的都是皇帝说了算,很难找到励志的典型,尤其是中国除了四大发明,也确实没啥可以拿得出手的东西,而且四大发明这个说法,只广泛的影响了中国,你去问一个外国人,90%的可能,他们不知道啥叫四大发明。本文的主角,布尔先生,也算是个励志的典型,和上一次所说的法拉第,是为数不多的穷小子成为世界顶级科学家的人之一。

法拉第的老爸是铁匠,布尔的老爸是鞋匠。他所受的正规教育也非常的少,标准的小学生水平,但是,他一直自学数学,完全凭兴趣爱好来学习数学。他是一个老师,大家不要怀疑为啥一个小学毕业生还能当老师呢?难道没有教师资格认证考试么?有没有我不知道,反正,这个学校是布尔自己的学校,非常非常小的一个学校,类似于现在的补习班的规模,最初的老师就是他自己一个人,教几个小孩,最后这个学校成了一个规模不大的中学,老师仍然不多,学校的规模依然不大。布尔就这么一个数学爱好者吧,他生前的公认是个老师,后来由于交友广泛,外加老师当的不错,就去大学当老师了,科克大学的老师。

他自认为自己不是学术精英,而是一个自学成才的老师。这个评价并不是可以的谦虚,应该还算是比较公道的一个自我评价,因为他生前布尔代数并没有像今天这么火热,而是无人问津的一个科学,而他擅长的领域,微积分以及连续数学,差分方程领域,他又不是开创者,因此,我猜测这个自我评价应该还是很严谨的。因为布尔的传记里,对布尔的评价就是一个严谨并且极其认真,工作非常努力的一个人。布尔这个人其实人生的大部分时间都是单身,痴迷于研究数学和教别人数学,因此在40岁的时候,才脱单,结婚了,娶了一个比他小17岁的女孩为妻,然后他们两个人共同生活了9年,在49岁的时候,布尔冒着大雨去教课,结果淋病了,得了肺炎,就去世了。布尔的生平,很多信息都是他的妻子和他的姐姐整理出来的。

再多说一句,布尔虽然只和他的妻子生活了9年,但是,在这9年中,他们生了5个女儿,然后,他的5个女儿每一个都是非常有影响力的人,如果自己没有影响力,自己的后代就有影响力,就是布尔的孙子孙女辈,布尔的妻子非常的长寿,布尔去世52年以后,她才去世。

布尔的大女儿生的两个孩子,如果年龄稍大的中国人应该知道,老大儿子和女儿,应该喊布尔外祖父,这两个人的中国名字叫韩丁和寒雪,是毛泽东的崇拜者,也是中国绿卡获得的第一人,两人都有在中国长期生活的经历,在70年代,是中国家喻户晓的“老朋友”。周恩来多次接见他们,寒雪在中国逝世,寒雪的子女目前都在中国的大学里当教授,大家有兴趣可以搜搜看看。他们都还健在,对于他们的选择,我们也不能说啥,是非常非常靠谱的,非常非常坚定的共产主义者。寒雪是美国的核物理专家,依然放弃美国的事业,来到中国北京养奶牛,她们两口子为了共产主义在中国养了一辈子牛,而且,对母牛的血统非常的执着,一定要是从革命圣地延安引进的母牛,这位有理想的老人去世了,她最大的担忧是怕她的农场被拆迁了,她养的那些牛就没有地方可去了。她最大的遗憾是现在的人都忙着赚钱,都不去革命了!我都不好评价什么。寒雪的老师是费米,他的同学是杨振宁,

布尔的后代好多牛人,包括流体力学,四纬几何的重要贡献者,还有作家,牛氓的作者伏尼契也是布尔的后代。现在人工智能特别的流行,深度学习之父的名字叫杰弗里•辛顿,按照辈份的话,是布尔的重孙辈。

4 跑个题

好像又跑题了,又不是干货了,既然跑题了,我就谈一下干货这个事儿。我觉得想听干货的人,脑袋是有问题的人,只想走个捷径,最好是把一门科学几句话讲出来,类似于考试的划重点,其实,我挺瞧不起天天嚷着让我讲干货的人,爱听不听,别给我提意见。一门科学,比如说本文所讲的布尔代数,是离散数学的一个分支,离散数学又是当代数学最重要的一个分支,或者不能说最重要,我个人认为的最重要吧,离散数学是计算机科学的数学基础,所以我觉得非常重要。如果仔细划分的话,数理逻辑,集合论,图论和近世代数是离散数学的四个分支,其中数理逻辑是基于布尔运算的。我认为任何有用的知识,都不太可能在60秒之内学会的。因为有个关注者,希望我能做一个60秒的版本,而且说,如果一个想法不能在60秒之内讲清楚,这个想法就不值得去了解。

由于微信后台包括喜马拉雅骂我的人已经太多了,每天都有,集中在口音和没有干货上,还有不爱祖国上,我一般是不回复的,如果喷我两三次,我就把它拉黑。我个人觉得数理逻辑也好,人工智能也好,甚至学习一种系鞋带的方法,60秒都不太够。人生说长不长,说短不短,反正到时间了,咱们都不太可能活着和这个世界说再见。那么着急干啥呢,如果有人对布尔代数感兴趣,可以买一本数理逻辑研究一下,里面的公式非常的多,60秒远远不够,仔细研究的话,600天也不是很够。我这个节目里,只能讲其中的一点点,对计算机的原理有点帮助就行,我也没打算把数理逻辑讲清楚,首先我没有这个能力,因为数理逻辑仍然在进化,虽不能说突飞猛进,但是依然慢慢吞吞的影响着这个世界。

5 布尔代数和逻辑和人工智能

还有人建议我讲人工智能,可能觉得这玩意先进,其实,人工智能并没有多么神奇,就是基于布尔代数的一些运算,等我讲完电脑原理以后,会涉及到人工智能的发展历史,其实如果追本溯源的话,布尔代数就是试图模拟人脑的思维。人类想制造出人工智能,早在几千年前就开始尝试了,因为人类对大脑的理解非常的不够,包括今天,也没有搞定大脑是如何运行的。如果人类能理解大脑的话,早就反编译一个大脑出来了,逆向工程造一个大脑帮我们想问题。但是,搞不定,于是才退而求其次,打算研究一下逻辑,按照大脑的工作方式来研究大脑。早在亚里士多德的年代,亚里士多德就已经开始研究大脑了,他觉得大脑和逻辑有密切的联系。证据就是亚里士多德逻辑学基础的三段论法,这个我就不展开了。

再后来包括莱布尼兹,和牛顿独立发明了微积分的那个家伙,也曾经试图对大脑的思考方式进行研究,他在逻辑学上也有重大的贡献,但是,后来没搞定。再后来就是布尔同学的《逻辑的数学分析》《思维的规律》这两本书的出现,算是搞定了如何用数学把逻辑定义出来。但是,当时的人根本没有注意到这个伟大的成果,很可能布尔同学自己也没有注意到这方面的巨大应用,所以,在布尔代数上,他花费的精力并不是特别多。

我们只看看书名的话,《思维的规律–逻辑与概率数学理论的基础》,因为内容看不懂啊,所以,只看书名的话,我们就知道,布尔同学起码已经意识到了,如果用数学来描述大脑的工作方式,也许,我们就真的可以了解大脑的思维,现在来看,可能觉得这有点不靠谱,但是,人类总是这样啊,总觉得这事儿能搞定。既然大脑的思维方式能用数学搞定,那制造出一个大脑,还不简单啊!实际上,就是不简单!

我个人认为,我们离搞清楚大脑的原理还有很大的路要走,离人工智能有更远的路要走,可能人工智能会在围棋上赢人类。但是,我们如何告诉人工智能以下的事情呢?为什么我们去健身房,经常是跑步5分钟,自拍1小时,还要把照片美颜一下发到朋友圈里呢?这个人工智能很难想明白啊。为什么人类去吃个日本料理会拍个照片,去沙县小吃吃个5块钱的炒河粉就不拍照片呢?为什么发生了矛盾,男人之间是撸起袖子干一架,而女人是在背后散播谣言?这个事情在完全搞明白之前,我觉得人工智能还是需要走很长的一段路的。

6 布尔代数和传统代数的区别

传统代数就是我们上街买个菜,然后算一下给多少钱,或者时间一分等于60秒,60分钟等于1小时,传统的数学给我们的感觉,是连续的,所以,我们才能在谈恋爱的时候说出我永远爱你这种肉麻的话,永远有多远我们不知道,但是,肯定是连续的。布尔代数的出现,一下子改变了这种状态,类似于量子力学的出现,把我们对世界的的认识从连续的状态一下子扩展到离散的状态,比如说我们在炉子边上烤火,能量并不是连续的,而是一份一份的能量过来,能量是可以分成一块一块的不可细分的单位。在布尔代数里,更是这样,什么东西都是可以量子化的,从连续的,变成一个一个的。就像前面我说的,当你对你女朋友说永远爱她的时候,这个永远是可以分成一个一个的不可细分的小永远,最后才组成了一个大永远。这就是布尔代数的方法,因此,这门课的名字叫离散数学,万物都是离散的,否则为啥不叫整体数学呢?

只有把万物都想像成离散的,从连续的变成一个一个不连续的,也就是全都量子化,才能用到布尔代数里的运算,布尔代数里最重要的三个运算,与或非。说来很奇怪,我们的计算机,无论多么复杂,无论多么的智能,最后就是做这三个运算,与或非。在计算机中,只需要两个数字,0和1来表示布尔代数中的两个值。布尔代数的伟大在于,把数学和逻辑结合在了一起,而且只要两个状态就可以,在电脑中,就是高电平和低电平,电压高一点还是低一点。同样,我们也可以用继电器来表示这两个状态,当弹簧弹开的时候,代表数字0,当弹簧片闭合的时候,代表数字1。就是这么简单直接粗暴。

7 布尔代数的运算

布尔代数的三个基本的运算,与或非。比如我们有一个集合代表所有的人类,用数字1来表示,有一个集合M代表所有的男人,有一个集合F代表所有的女人,这时候,M + F = 1。因此在布尔代数里的加号和数字1和传统代数里的加号以及数字1表示的意义并不相同。这一点,以后我可能会用到公式,希望大家明白这一点。

还是上面这个例子,M代表所有的男人,F代表所有的女人,那M和F的并集就是0,因为人就是分为女人和男人,不可能一个人同时是女人又同时是男人,当然现在科技发达了,凡事都有可能,但是在布尔代数里,我们认为是不可能的,公式是这样写的 M X F = 0。在这里,乘号和数字0的意义和传统代数里的意义也不同。

我为什么要强调呢,那是因为上一次节目里,我画了一个电磁铁的电路图,有个互联网思维的哥们跑过来跟我说我说错了,电磁铁画错了,一段导线缠在一个铁棍上通电,怎么可能产生磁力呢?不管怎么说了,这件事情是我做公众号以来收到的最好的留言。

好了,电脑的数学基础就稍微的讲一点点,布尔代数,然后,接下来就用继电器去实现这个布尔代数的理论。至于用布尔代数和基于布尔代数的电路能不能实现人工智能,这个我也不好说。有时候我老婆在看包,我就问她,别看了,直接买下来吧,然后她说不用,这个时候,基于我经常判断错,她说的不买有时候是买,我就会确认以下,到底买不买?她会说:废话!这个时候,我就更疑惑了,这个废话,是说买还是不买呢?

我想知道的是,你人工智能这么牛,又会开车又会下棋,什么时候,人工智能可以帮我判断一下,我老婆要买包,到底买还是不买呢?

好了,这期就到这里,下期再见!

0 0 投票数
文章评分
订阅评论
提醒

0 评论
内联反馈
查看所有评论
0
希望看到您的想法,请您发表评论x
滚动至顶部