二进制的逆袭:小学生们的福音来了!
作者|吴昊 编辑|Jason
全文3289字 阅读时间约9分钟
作者介绍:吴昊(Peter),现卡内基梅隆大学数学、计算机双专业学生,兴趣为中小学数学和计算机教育,信奉罗教授“兴趣为本”的教学理念,立志为传播快乐数学的种子尽一份力。
你了解二进制吗?如果用二进制代替我们现在的十进制,在做各种数学运算的时候,居然会看起来非常简便!那么,二进制到底怎么用,好用吗?
图片来源:prntexas.org
家中有在上小学的儿女,就一定免不了经常听到这种抱怨:“加法口诀太费脑子了!”“九九乘法表太难背了!”“竖式除法太难猜了!”你是否会无奈地告诉孩子,这个没办法,就是得背,就是得猜,过了这个关前途就会一片光明?
无论中国还是美国,每年都有大量小学生因为不想背乘法口诀表而对数学失去兴趣。相比较而言,中文的乘法口诀表比英文的容易很多:在中文里,0到9这些个位数都是单音节,而英文中如7 (seven)就是双音节;在两位数中,英文多音节的例子就更多了:11 (eleven),17(seventeen)都是三音节,而中文里统统都是双音节。但无论使用哪种语言,都解决不了最让人头疼的问题:能不能不背九九乘法表?
今天我就来告诉大家:可以!而且加法口诀也不用记,竖式除法更不用猜!是不是整个人都沸腾了?那么我们就来看看,这解决一切麻烦的灵药,到底是不是喙头?
在揭晓灵药之前,我们先来了解一下,“十进制”是个什么玩意儿?
图片来源:techspirited.com
什么是十进制 (decimal)?
“十进制”其实一点也不神秘:它是一种把数用一、十、百、千,以及十分之一、百分之一、千分之一等等表示的方法:从0开始,到9就是所有的个位数了,再加1,就需要“进” (carry)到下一位,并清空当前位,表示为10,然后再逐渐加到99,如果再加1,就是100,以此类推。
为什么人类用十进制?
你可能已经想过这个问题了:为什么是十?你的父母、老师,以及网络都会告诉你,这是因为
人类有十根手指
确实,人类也有十根脚趾,但很少有人用脚趾算数,虽然这样并不会影响结果。如果你和我一样对停在这个答案不够满意(那为什么人类有十根手指,而蜈蚣、章鱼、蚂蚁等等都和我们的数量不一样?),可以查一下Limb Law,它提出,肢体的最优数量和肢体的大小有关。
另外值得注意的是,纵观历史,十进制并不一直是全人类通用的。古巴比伦文化用的就是六十进制(满六十进一位),而玛雅文化则用二十进制。
图片来源:scienceabc.com
10=十?
在维基百科上有一个数学笑话:世界上只有10种人,一种是理解二进制的,一种是不理解的。要知道,10在每个记数制 (numeral system)中代表的数都是不一样的。事实上,它代表的数就是进位制的基数 (base),比如在二进制中,它就是二,而在十进制中,它则代表十。所以,当你在电脑程序中看到10时,不要默认它就是十,而是要确认它用的是哪个数字系统,然后再计算它代表的是什么,因为电脑里面一般用的是二进制。这是为什么呢?请见文末。
二进制vs十进制
铺垫好了,是时候揭晓“灵药”了!这个“灵药”就是—二进制!我们来看看,如何用二进制消除小学教育最大的头疼。
图片来源:binarytranslator.com
a 不用过脑子的加法
在十进制中,不考虑重复,一共有55种个位数加法的组合:如果两个数不相等,那么一共有10x9/2=45种;而如果两个数相等,一共有10种。虽然现在我们都已经习惯了这些结果,对于初学算术的孩子们来说,是比较有难度的。那么如果用二进制呢?我可以在一行里写完所有的组合,因为只有3个:0 + 0 = 0,0 + 1 = 1,1 + 1 = 10。怎么样?是不是比十进制的55种组合简单多了?
b 不用口诀表的乘法
我问过在上小学的弟弟,“你最讨厌数学哪点?”不出我所料,他说是九九乘法表。就算忽略掉所有带0的组合和所有重复,我们仍然有45个式子要背。
记得前段时间有个微电影《三分钟》,拍的是一个当列车员的母亲,每年只有一次能见到自己的孩子,就是列车停靠家乡站台的三分钟。电影里,火车一靠站,孩子就跑过去找妈妈,而一找到妈妈,就开始背九九乘法表,甚至连一声“妈妈”都没叫。一直到母亲上车、火车离开站台,孩子以一句“九九八十一”作为给妈妈的送别礼,很是感人肺腑。
但试想,如果我们使用二进制呢?“零零得零,零一得零,一一得一”,3秒钟就背完了,剩下的时间,应该留给母子更深的交流。
图片来源:sohu.com
c 不用猜倍数的除法
若是说乘法靠记,那么除法就要靠猜了。798除以19是多少?我们要首先看79除以19,并猜测不超过79的19的倍数中最大的是哪个。假设我猜它是6,那我就要算出来6x19的得数,发现它比79大,然后再算5 x 19 = 95,一直到4 x 19 = 76,发现它不比79大,才能得出商的第一位是4。接下来,我们拿798减去760,得到的余数是38。接下来,我需要猜商的第二位,以此类推……那么二进制呢?
我们来试试用二进制的100001除以二进制的1011。1011有4位,所以我们先去比较除数和被除数的前四位,发现1000 < 1011,所以就去看被除数的下一位。现在,被除数要考虑的有5位,而除数只有4位,所以肯定更小,那我们就在商的第一位写上1(事实上,二进制数除了0以外第一位永远是1)。接下来,我们拿10000减去1011,得到101。101只有3位,比除数的位数少,所以我们就去看被除数的下一位,发现剩下的1011正好等于除数,所以就在商接一个1,余0。整个过程中,只有0和1的比较,没有乘法和猜数,是不是心动了?
图片来源:pixabay.com
为什么不用一进制?
既然二进制有这么多优势,那么是不是基数越小越好呢?如果基数是1呢?我们来考虑一下,如果使用一进制会发生什么。
首先,因为一进制中唯一的数字就是0,所以加减乘除运算都会非常简单:a + b就是把b贴到a的后面,比如00 + 000 = 00000;a - b则是从a里去掉b,比如 0000 – 000 = 0;a x b就是把a写b遍,而a÷b就是数a里面有几段b。
那么,为什么这篇文章叫二进制的逆袭,而不是一进制呢?原因在于,用一进制表示数的话,用的位数太多了。我们来考虑一下在n进制下,一个四位数最大是多少。在十进制中,最大的四位数是9999,也就是最小的五位数,10000,减去1。同理,在二进制中,最大的四位数也是最小的五位数减1,得到1111,对应的十进制数就是15。而在一进制中,最大的四位数,也是唯一的四位数,就是0000,对应的十进制数是4。
图片来源:youtube.com
看到这里,你可能会想,这么看来,十进制和二进制的差别,和它与一进制的差别也差不了太多啊?那让我们来考虑下,数位更多会发生什么。
假如我规定的位数是k,那么十进制中最大的数是10k-1,二进制中则是2k-1,都是随k指数增长的函数(可以理解为k越大,每增加1位时就能增加越多的数)。而一进制中,最大的数则是k本身,它的增长是线性的(可以理解为不管k有多大,每增加1位时,增加的数的个数不会变化)。比如我要表示的数翻4倍的话,用二进制只需要加2位,十进制要加0到1位,但使用一进制的话,我需要的新的位数是原来位数的3倍,这就需要很大的空间来保存,没有实际价值。
为什么电脑用二进制?
如果你的身边有程序猿,或者你自己就是程序猿的话,你肯定听说过,我们的世界是由0和1组成的。电脑尤其是这样:所有的数据,不论是数字、字母,还是图片、视频,都是被转化为二进制,也就是一串0和1,存放在电脑里的。那你可能会问了,电脑不是人设计和制作出来的吗?为什么人们不继续沿用自己的十进制,而要给电脑一套新的数字系统呢?这是因为,电脑是由电路组成的,而要让一个电路算出一个数,最简单明了的结果,就是这个电路是通路还是断路。如果有电流通过一段电路,那我们就给这段电路赋值为1,否则就赋值为0。光盘和磁盘也是相似的原理,它们分别用激光和磁场来存储0和1组成的数据。
图片来源:videohive.net
有没有很心动?如果你想帮助二进制逆袭人类教育界,或是想了解更多关于二进制逆袭的利弊,欢迎点击下方“查看原文”,访问罗教授的文章Binary
*以上内容属罗博深数学及其母公司Expii Inc所有,转载需授权。欢迎转发本文与全世界的朋友分享数学、教育的乐趣。
相关推荐