08-看影子就能测金字塔高度
你好,我是悦创。
在前面的内容里,我们说到好几次抽象思维,比如计算机在看图片的时候要把图片变成一大串数字,在破解密码的时候呢,也会把单词转换成字母出现的次数。那你可能要问了,抽象是不是就是把东西变成数字呀?
你说得没错,但是只说对了一部分,抽象并不只是把东西变成数字这么简单,它是一种特别有用的思想,在后面的各种编程算法里都会经常用到,所以这一讲,我就专门给你讲讲什么是抽象。
为了搞清楚什么是抽象,我先给你说一位古希腊的数学家和哲学家的故事,他叫做毕达哥拉斯。

据说毕达哥拉斯的老爸是一位特别有钱的商人,所以毕达哥拉斯年轻的时候,就可以到处去旅游。不过你要注意啊,毕达哥拉斯可不是光顾着玩,他是去世界各地学习先进的科学知识和文化,什么几何、音乐、天文还有各种各样的宗教知识他都学过。
学够了知识,毕达哥拉斯就跑去到处给别人讲自己的想法。比方说吧,早在2000多年前, 毕达哥拉斯就认为,地球是个大圆球。
这一点,咱们现在会觉得是个常识了。但是在那个年代,却是让人非常非常吃惊的一种说法。因为那个时候,人们并不知道地球是什么样的,说法千奇百怪,有人觉得地球就是个大平面,天就像个碗一样扣在地球上,有人觉得咱们的地球就是一个大乌龟,咱们都站在乌龟的背上。

诶,那毕达哥拉斯怎么知道地球是个大圆球呢?理由说出来你可能都不信,因为毕达哥拉斯觉得,球形是自然界中最完美的形状,所以咱们的地球就必须得是球形的。
好吧,这个理由可能让你有点失望,但是毕达哥拉斯的这个说法里面,有一个特别重要的思维方式,就是抽象思维。
简单地说,抽象思维其实就是提取出一个东西本质的属性。对毕达哥拉斯来说,讨论地球形状的时候,地球上水、空气、小动物啥的都不重要,这些信息都可以不要,他就只关注地球的形状,也就是一个“大圆球”。
其实,在生活中你也经常在用抽象思维,比如,量身高的时候,胖瘦也不重要对吧?所以,咱们就可以把自己的身高抽象成一条线段的长度。还有,在看地图的时候,我们只想知道自己在哪里,眼睛、胳膊、腿啥的都不重要的,我们也可以用抽象的方法把自己抽象成地图上的一个点,这也是抽象思维。

当然了,抽象思维课不光能抽象出图形,还可以抽象出数字。而且,毕达哥拉斯这个人可以说是把数字抽象给发挥到极致了。他曾经创办过一个学术流派,就叫毕达哥拉斯学派。这个学派就特别崇尚一个说法,叫“万物皆数”。什么意思呢?

他们就觉得,任何东西都可以抽象成数字。你们班一共有30个同学,可以用数字30来表示。森林里有几棵树呢?虽然多了点,但总归是可以数出来的。一个苹果,切成三份,每一份呢,可以用分数1/3来表示。
你看,通过抽象思维,毕达哥拉斯学派就可以把所有的东西都抽象成数学上的数字或者是几何图形了。那你肯定会问了,这么干有什么好处呢?
我给你举个例子吧,假如有5只猫,每只猫吃了3条鱼,它们一共吃了几条鱼呢?你脑海中浮现的,肯定就是5乘以3等于15,对吧?你肯定不会去想象5只猫,再想象它们吃鱼的样子,然后一条一条数,这也太麻烦了。

在想这个问题的时候,你就把猫和鱼抽象成了数字。当然了,你现在看这个问题可能会觉得太简单了,但其实,这种抽象的能力可不是天生就有的。
科学家发现,这种抽象能力要到上小学之后经过一定的练习才能掌握。你其实是在不知不觉间练习过了,而且,你可能发现了,这种思维方式,跟你做数学应用题时的思路是一样的。没错,数学课上的应用题,就是在锻炼你的抽象思维能力。
当然了,抽象思维可不光是能帮你做数学题目啊,它可以实实在在地解决实际生活中的问题。
比方说,毕达哥拉斯有一位老师叫泰勒斯,他也是一位特别厉害的哲学家和数学家,他就用抽象思维解决过大难题。

你肯定知道埃及金字塔吧?古埃及人虽然能把金字塔造出来,但是却没法精确测量金字塔的高度,只能大概估计一下。因为金字塔的边是斜的,没法拿着尺子去直接量它的高度嘛。那怎么办呢?
这时候,咱们的泰勒斯登场了,他是怎么量的呢?
他没有去爬金字塔,而是站在太阳底下,让人量自己的影子长度。随着太阳移动,我们影子的长度也会不断变化。等影子的长度和自己身高一样的时候,泰勒斯就赶紧让人记下金字塔影子顶点的位置。然后再拿尺子量出金字塔影子的长度就可以了。

你看,他用的其实就是抽象思维。首先,他把自己的身高、影子的长度还有金字塔的高度都抽象成了一条线的长度。当自己的影子长度等于身高的时候,金字塔的影子长度正好也等于它的高度。靠着抽象思维,泰勒斯破解了金字塔高度问题,是不是很巧妙?你也可以试试用这个方法去测量你家小区里树或者是路灯的高度。
虽然说抽象思维是个特别有用的思维方式,但毕达哥拉斯学派在“万物皆数”这一点上做得有点过头了。他们实在是太崇尚数学了,把数学当成了一种信仰。如果现实和他们的信仰相冲突,那他们是不能接受的。
比方说,毕达哥拉斯学派里有一个学生就发现了一个奇怪的数字。什么数字呢?
你可以拿尺子在纸上画一个边长10厘米的正方形,然后把它的对角线连起来,然后量一量对角线的长度。它肯定比14厘米长一点,又不到15厘米。

那是不是尺子的精度不够,量不出准确长度呢?
其实不是的,无论你换多厉害的尺子,都量不出它的长度,而且,这个长度用分数也没法表示。这种奇怪的数字叫做无理数,也就是“无法理解的数字”,等你上了初中就会学到无理数了。
但在2000多年前,毕达哥拉斯学派的人都没见过这种奇怪的数字,不是说万物皆数吗?怎么搞出了这么个既不是整数,也不是分数的东西,难道说我们的信仰错了?于是,他们想了个办法,把发现无理数的学生给扔到河里去了,这下万物皆数的信仰又保住了。
不管怎么说吧,“万物皆数”的抽象思维还是很重要的。从此,人们就可以用数学语言去描述世界了。
听到这你肯定要问了,这和我们要说的编程有什么关系呢?当然有了,咱们还是用前面小猫吃鱼的例子吧。
假如你跟计算机说,有100只小猫,每只小猫吃5条鱼,一共要吃多少条鱼呀?这时候,计算机肯定不会有任何反应,无论你怎么给它解释小猫小鱼,它都听不懂。
它唯一能听懂的,是你抽象出来的数字,100和5。另外,电脑也不知道“一共吃多少鱼”是什么意思,你也必须把这句话抽象成一个计算方法,在这里显然就是用乘法了。
而且,咱们前面把图片上的颜色抽象成数字,把字母抽象成频率,也都是为了让计算机或者是机器能看懂,能进行处理。如果不进行抽象的话,计算机压根就听不懂你的命令,可以说抽象思维是我们和计算机交流的基础。
可是光有抽象思维就够了吗?当然不够,为了让计算机能代替我们思考或者作出判断,你还必须掌握一个小技巧,到底是什么技巧呢?下一讲,我就带你一探究竟。
在离开之前,我再给你留一个小问题:请你利用毕达哥拉斯的方法,测测一个物体的高度,然后把结果放到留言区跟小伙伴们分享。大家比一比,看谁测量的物体更高!
更新日志
33008
-于1334c
-于cbb3a
-于76989
-于86c50
-于027da
-于