购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

数是什么?

你能用手指数出的最大的数是什么?大多数人数到10就会停下来,因为他们把手指用完了。但并非所有人都采用这种非常局限的计数方式,也就是只伸出手指却不缩回的方式。如果你允许手指缩回,那么你只需要用前两根手指就能数到3。举起第一根手指代表1,第二根手指代表2,同时举起这两根手指就代表3。然后你可以单独举起第三根手指代表4,这样同时举起第一、第三根手指代表5。以此类推,你根本不需要第五根手指就已经可以数到16了。

用这样的计数系统,只用10根手指,你就可以从0数到1,023。但是我们的手指计数器还能再升级。如果考虑手指的3种状态:收回、半伸直、完全伸直,你可以从0数到59,048。再进一步,如果使用4种状态(收回并接触手掌、收回但不接触手掌、半伸直、完全伸直),你可以从0数到1,048,575。只用10根手指就可以数超过100万的数了!我们已经将手指计数器的上限提升了十万多倍,只是你患关节炎的风险可能会增加一些。

来,我们继续。使用8种手指姿势,我们不仅可以获得前所未有的数字敏感度,还可以从0数到1,073,741,823——超过了10亿!不过要小心,比手势的时候别被街头帮派当自己人了。

我的改进就到此为止了,但手指计数的能力到底有多高?对于那些手指和头脑都绝对灵活的人来说,一切皆有可能。

只能数10的手指计数器,和能数到10亿的手指计数器,区别在于各手指不再是计数点,它们的不同姿势才是关键。在一般的计数方式中,每根手指都代表相同的数值(每根手指可以代表1或大于1的数值);在用前两根手指数到3的策略下,第一根手指仍然代表1,但第二根手指代表2。以此类推,第三根手指代表4,第四根手指代表8,第五根手指代表16。可以看到,这里出现了一个数列:每根手指伸直时代表的数是前一根手指的两倍。通过简单的尝试,你会很容易找到用手指的两种状态表示数的方法。(小提醒:132是你手指伸出的最具挑衅意味的数,试试看……还是不要了。)因为每根手指有两个姿势,所以这样的计数系统被称为二进制(binary)计数系统,或被称为以2为基数(base-2)的计数系统。要想写下二进制数,可以用0代表手指缩回的状态,用1代表手指伸直的状态。如果你曾经学过二进制数,那你应该记得二进制的第一位代表1,第二位代表2,第三位代表4,第四位代表8,以此类推。

第三种计数系统是基于手指的3种姿势——缩回、半伸直(或者半缩回,如果你想要听起来消极一点的话)、伸直,所以它被称为三进制(base-3)。以此类推:4种手指状态可以表示四进制(base-4)数;8种手指状态可以表示八进制(base-8)数。现在,我们来归纳一下(请集中注意力):不管是用手表示还是写下来,每种状态代表的数值等于前一种状态代表的数值乘以基数,所以三进制对应的数列是1,3,9,27,…,我们可以用0,1,2这3个数字代表手指的3种状态;而在八进制中,数列变成1,8,64,512,…,我们可以用0、1、2、3、4、5、6、7来代表手指的8种不同状态。在八进制下,10亿被表示为7,346,545,000。

用手指的8种姿势表示10亿的方法(也可以兼做数学帮派的手势)

这些表示数的方式都属于基于数字位置的计数系统。它们和罗马人使用的计数系统完全不同。罗马数字所在的位置不会改变它所代表的数值,数字V永远代表5,不管它出现在什么位置。在十进制数3,435中,数字3分别代表3,000和30,取决于它出现在什么位置。罗马计数系统的空间消耗太大,已经无法满足现代计数需求。数字位置计数系统非常强大,可以轻而易举表示任何数。当然,现代社会几乎完全采用十进制,但我还要再强调一次,这只是万千种选择中的一种。

如果你正在使用不同的进制,一定会有些困惑。在两个使用不同数字的计数系统之间,我可以将一个数来回转换,比如将十进制数转换成罗马数字(例如3,435将变成MMMCDXXXV),你肯定能很清楚地意识到后者数字的写法,就好像把一个词翻译为另一个用完全不同字或字母组成的语言一样,例如,把英语翻译成日语。不过,当你得在使用相同字母的英语和印尼语之间互译时,如果你不知道这个词的语言所属,你可能会觉得自己身处滚烫的空气(air)中。哦不,其实我是说滚烫的水(water)中[英语中的“air”(空气)在印尼语中是“water”(水)的意思]。

我不禁想起一个我忍不住一次又一次地跟别人说的,大家也可能都听过的数学笑话,它与上面所说的误解类似,经常被写到文化衫上:“世界上只有10种人——懂二进制的人和不懂二进制的人。”我来稍微解释一下这里的笑点:“10”在二进制中表示2,所以只有理解二进制的人才知道那不是10,而是2。好了,你可以开始笑了,笑完我们再继续。

不过,我想稍微严厉地吐槽一下这个笑话。因为我作为一位常常讲脱口秀的数学家,总是在听别人讲述这个笑话。通常,人们会这样开始:“来,你听过这个笑话吗?不过这个笑话可能听起来没有笑点,但是……”然后便开始讲述这个只有写下来才能引人发笑的笑话。这是二次元笑话所面对的问题:要么好笑,要么不好笑。不过,不管喜剧效果如何,这个笑话都是一个极好的例子,说明在不同计数系统下,相同的数字及相同的排列顺序如何表达不同的数。

无论如何,我们现在都是十进制的忠实粉丝了。有人说这是因为我们有10根手指:如果你用手指计数,每当数到10,我们都需要重新开始掰手指,并另外记录我们数了多少次“10”。如果让一个朋友帮你记录数到“10”的次数,每当记录到10次“10”,用尽了自己的手指,你就得再找一个朋友帮忙记录数到“100”的次数。以10的倍数进行计数对于人类来说(至少对于有很多朋友的人类来说)似乎是很自然的做法。如果这个假说正确,那么玛雅人可能在计数时得手脚并用,因为他们采用20进制。

这就是我们用同一个英语单词“digit”来表示“数字”和“手指”的原因。 在宇宙中,其他地方的智慧生物可能不长着10根手指。比如说,他们可能演化出了3条手臂,每条手臂末端有4个可以抓握东西的手指状凸起,那他们很可能使用十二进制。

即使在地球,仍有少数人主张人类应该使用十二进制,摒弃十进制。十二进制的拥护者大肆宣扬以12为基数计数的好处(比如,能被12整除的数比能被10整除的数多,所以分数的书写将变得更容易),却没看到这么做带来的社会剧变。如果真的采用十二进制,我们就需要12个数字,所以要在十进制的基础上增加两个数字:一般用“A”代表10,用“B”代表11。于是十进制数3,435在十二进制下将表示为1BA3。

改变进制的可能性微乎其微。十进制已经根深蒂固,其他进制只是数学家们的消遣。只有一个例外,当我们进入计算机领域,其他进制从数学理论进入现实世界。二进制使用的数字很少,只有0和1两个数字,你不会找到比它更简单的计数系统了。这一点对计算机来说非常有用。现代计算机就是建立在这种二元选择基础之上的:导线中要么有电流,要么没有;硬盘中的磁铁也只有南北两极。这一切要么是0,要么是1。幸好,所有的数都可以转换成用一系列1和0表示的二进制序列。

然而,这样却打破了一种平衡:采用的数字既要确保计数系统足够简单好用,又要使数的表达足够高效。对智慧生命(如人类或者外星人类)来说,十进制(或十二进制)很有效。而计算机只有使用数字有限的二进制才能运行:所有智能手机、数字电视,甚至微波炉,都使用二进制进行幕后计数和运算。不过,当需要和人类交互时,它们会体贴地把二进制转换成十进制,以方便人类的使用。

但最初简陋的计算机可没有这么周到。我有幸见到过一位年迈的绅士,他年轻时师从艾伦·图灵(Alan Turing)学习数学,是图灵1954年去世前的最后一位学生。图灵被公认为“计算机之父”,他在曼彻斯特大学工作期间为第一台计算机编写了操作系统,那是最早的计算机操作系统之一。因为图灵自己非常精通二进制,所以很显然,他的第一个操作系统也要求使用者非常精通二进制。虽然后续开发的新操作系统可以将二进制转化成十进制,但图灵自己使用那台计算机的时候,仍然坚持把系统重置回二进制,一直到他死去的那一天。

虽然如今的计算机把二进制深藏在用户交互界面之下,但你仍然可以发现二进制的蛛丝马迹。在使用计算机的过程中,你肯定见过16G或者32G的内存卡、1,024像素的屏幕分辨率,这些数字就蕴含着二进制信息。人类都钟爱“整”数,比如1,000、1,000,000,因为它们看起来很漂亮。电脑也一样:它们喜欢二进制中的“整”数。二进制中的每个数位代表的值都是2的幂数,所以你常常会见到这样的数:2 5 =32、2 10 =1,024。

有时,计算机会意外泄露一些十六进制数(比如Wi-Fi初始密码),只不过没有多少人注意到。十六进制(hexadecimal)通常使用0~9的数字以及A~F的字母来表示数。这些数虽然没有2的幂数明显,但它们确实存在。看一下路由器的背面,你会发现初始密码通常由数字0~9及字母A~F组成。再看一下绘图软件或者图像编辑软件的颜色数值,你也会发现十六进制数。那么,你现在知道十六进制数是什么样了,就能时不时在计算机中用的数字里发现含有A~F的数。说不定你还会像我一样梦到它们……

使用十六进制是为了比二进制更加高效地存储数据,但这通常只有程序员或者计算机高级用户才体会得到。因为一般在这些情况下,十六进制才是最佳选择。这可能看起来很奇怪——为什么不简单地用10作为基数呢?这是因为16本身是2的幂数。如果某进制的基数是另一进制基数的幂数,那么在这两个进制间进行数的转换就会非常容易。一般来说,假设两个进制的位值完全不一样,但如果新基数是原基数的幂数,那么只需要减少原先的一些位值,并不会产生新的位值。把数字从二进制转换成十六进制时,二进制数中的每四位数都可以独立地转换成十六进制数的一位数。

部分二进制数与十六进制数的转换,也就是说二进制数1011110000100001可以转换为十六进制数BC21

一旦理解了各种计数系统,将会很容易理解它们深处真正的数学。翻译“外数”(foreign number)要比翻译外语简单得多!19世纪玛雅文明重见天日时,大量晦涩难懂的文字材料也被发掘了出来,在人们读懂这些文字之前,数字却早已被悉数破译——尽管它们是奇怪的二十进制数。如果我们有幸遇到环游星际的外星来客,一旦掌握他们用来表达数字的符号,我们就可以愉快地用数字交流。不过,如果你想跟他们分享一道数学难题,最好找一个与计数系统无关的问题。 LmQpcoP8dJyu+HSB8SukDIQvGIDyaYxOHeDo1Shzd0MoyESRyx+a9sfDIw7uNkb8

点击中间区域
呼出菜单
上一章
目录
下一章
×