有一个有趣的数学游戏:你在心中默想一个1-30之间的整数,并且告诉我你想的整数在下面的哪些圈里,我就能在3秒钟之内告诉你你想的数字是哪个。
注意,如果我使用集合的方法来判断,3秒内很难给出答案,所以,这个游戏的秘诀在于一种快速的算法。具体怎么回事?接下来,咱们一起来看一下。
数学游戏
其实这个游戏很简单,学会了之后,你很快就能跟同学炫耀啦!
在五个圈中有一些特殊的数字,分别是1、2、4、8、16, 当你告诉我你心里想的数字在哪些圈里时,我只要把你指定的圈中的特殊数字相加,就得到结果了。
比如,你告诉你想的数字在ABDE四个圆圈中,A中有数字2、B中有数字2、D中有数字8、E中有数字16,那我就计算1+2+8+16,结果是27。你学会了吗?
二进制
可是这是为什么呢?
通常,我们使用的数字是10进制的,也就是满十进一。一个十进制数字从右到左分别叫做个位、十位、百位…表示的就是100、101、102……的个数,比如十进制下的数352,它表示3个一百,5个十,还有2个一相加:
也许,人们最初选用十进制,是因为手指有10个。
如果我们用十根手指表示数字,每根手指只有伸出来和缩回去两个状态,最多能表示多少个数字呢?也许有些小朋友会说:能表示10个。这其实是不对的,最多能表示从0到1023的1024个数字!
方法是这样的:让手指伸出来和缩回去分别表示二进制的1和0两个数字,每一根手指表示二进制的一个位数,那么一共就可以表示出一个十位二进制数。如果十根手指都缩回去,就表示每一位上都是0,这个数字就是0;如果十根手指都伸出来,就表示每个位数上都是1,它的大小是
如果按照这种方法,歌王做出这个手势,意思应该是16+8+1等于25。
游戏揭秘
现在我们终于可以弄清楚数字游戏的原理了:
首先,我们把1到30这三十个十进制数字都转化成二进制,并且为了整齐,把二进制补齐成5位。
我们把那些在二进制下最右位的数字是1的数字选出来,写到A圆圈中。比如十进制数1、3、5、7、9…,它写成二进制时最右侧数字是1,我们就把它们都写在A圈中,这表示它在二进制下含有2º,即1;
再把那些二进制下右数第二位是1的数字写到B圈中,比如十进制数2、3、6、7、10…, 它写成二进制时右数第二位数字是1,我们就把它们都写在B圈中,这表示它在二进制下含有2¹,即2;
再按照这种方法,把二进制下第三位是1的数字写到C圈中,把第四位是1的数字写到D圈中,把最左位是1的数字写在E圈中。当我们把5个圆圈都写好数字后,当你告诉我你心里想的数字在哪些圈里的时候,实际就是告诉了我:这个数字转化成二进制时,哪些位数上是1。
比如你告诉我B圈和C圈中有你想的数,就表示你心里想的数字转化成二进制之后,右数第二、第三位是1,而其他位数上都是0,所以这个数字在二进制下写作110,它代表的十进制数就是
圆圈中的特殊数字1、2、4、8、16,其实都是2的幂次,表示二进制数字上的每一位。把对应的数字加起来,自然就得到结果了。
另一个有趣的数学问题
还有一个可以用二进制解决的有趣问题:
有100瓶水,其中有一瓶水中有毒药。如果喝了有毒药的水,1周之后就会死亡。现在问:至少用多少只小鼠,才能在一周之后知道哪瓶水里有毒?
显然,如果有100只老鼠,让每只老鼠喝一瓶水,一周后就一定知道答案了。不过,实际上我们并不需要那么多老鼠,只需要7只老鼠就够了。
首先,我们把1-100的数都转化成二进制数,然后观察每一个二进制数字,它最多只有7位。把所有最右一位数是1的水瓶找出来,从中取出一些水,喂给第一只老鼠喝掉。比如第1、3、5…号瓶子就是这样,第一只老鼠要喝这些瓶子中的水。不过注意不要喝光,还要给后面的老鼠留一些。
如果一周后,这只老鼠死亡,就说明有毒药的水一定被它喝到了,这瓶毒水的编号在二进制下最右位数字一定是1;反过来,如果这只老鼠没有死亡,就说明这只老鼠没有喝到有毒药的水,有毒药的水瓶编号在二进制下最右位数字是0。
按照同样的方法,我们把编号在二进制下第二、三、四、五、六、七位数字是1的瓶子中的水给第2、3、4、5、6、7只老鼠喝掉,看它们在一周后是否死亡,来判断这瓶毒药的编号在二进制下该位数是否是1。最终,根据七只老鼠的死亡情况,就能写出毒药编号的二进制数,这就能知道哪瓶是毒药了。
八卦和计算机
二进制的发明者是德国数学家和哲学家莱布尼茨。有种传说:莱布尼茨是在看到了中国的《周易》,了解了中国的八卦之后,才发明了二进制,不过这种说法据梁启超考证,并不是事实。真实情况是:莱布尼茨先发明了二进制,然后看到中国的八卦,他发现:八卦是可以使用二进制解释的。
中国古人认为:世界是由阴阳调和而成的,于是就创造了阴爻和阳爻。阴爻用一个中间断开的线表示,阳爻用一根连着的线表示。所谓太极生两仪,就指的是阴和阳。
如果在一爻上面再加一爻,就组成了四种不同的情况,这就是所谓的两仪生四象。在四象之上再加一爻,就组成了八种不同情况,这就叫四象生八卦。
如果我们把阴爻看作0,阳爻看作1,那么每一个单卦就刚好可以用一个二进制数来表示,这就是八卦与数字的对应关系。
从古代的八卦,人们就已经隐约的感觉到二进制的作用了,到了现代,二进制的作用越来越大,尤其是应用在计算机科学中。
在计算机里,需要使用数量庞大的门电路实现逻辑运算,每一个门电路都只有高电压和低电压两种情况,分别对应了数字1和0。所以,计算机都是采用二进制进行工作的。
我们平常看到的代码是这样的:
但是这只是为了让程序员们便于编写和阅读,我们叫它计算机语言,更好的叫法应该是程序员语言。
当计算机执行程序时,机器会首先将这些代码转换成二进制的数字。所以在机器眼中,代码其实长这个样子。每一段不同的二进制数字,就代表了某种操作或者运算。
怎么样?二进制是不是还挺有用的?
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.