下周就是农历新年了,阖家团聚当然是值得庆祝的喜事儿。吃吃喝喝结束以后,很多大人们就要开始打牌了。对于小朋友来说,这种娱乐不太友好。怎样让小朋友也能健康地参与棋牌游戏呢?今天我们来教你怎样用麻将牌制作能用的计算机。你说不定可以艳惊四座,在阻挠大人打牌的同时,获得更多压岁红包。
计算机的基础,是一种叫做逻辑门的东西。不管是做加减法,还是剪切拷贝文件,在进行计算的,就是这些逻辑门,它们相当于是计算机的神经元。逻辑门这个东西听起来很高深,但实际上原理非常简单。在计算机里,逻辑门是由晶体管实现的。但是实际上,用麻将牌,也可以做出逻辑门哦。
就拿最简单的与门来说。假设有2个人,一个人输入0,一个人也输入0,那么经过与门计算后,它会得到0。
只有在2个人都输入1的情况下,与门才会得到1。这就相当于做了一次乘法对吧。举个例子,如果问你,面前的2个人是否都是男孩子,你就是在进行与门运算。那么,我们用麻将牌怎么制造与门呢?很简单。假设麻将阵列的开头站着表示输入0,倒下表示输入1,末端站着表示输出0,倒下表示输出1,那么我们像下面这样排,就可以得到一个麻将牌与门。
好,现在我们要来做一个或门。或门的意思是,只要输入里至少有1个1,那么输出就是1。举个例子,如果问你,面前的2个人里是否有男孩子,你就是在进行或门运算。怎么造呢,像下面这样。你可以看到,只要输入至少1个1(推倒任何起点的麻将牌),那么最后的麻将牌就会被推倒。只有在2列麻将牌都站立(输入均为0)的情况下,最后的麻将牌才能站立,输出0。
啥是异或门?实际上异或门可以做2进制的一位数加法。
2进制什么意思呢,比如1写成1,2就写成10,3就是11,4是100,以此类推。那么在2进制里,0+0还是0,0+1或1+0就是1,1+1变成0并且进位1。这个操作就可以用异或门部分实现。用麻将牌码起来的效果是这样的——比如只推倒左边的麻将牌,那么最后就会输出1;推倒右边同理。同时推倒两边的话,中间的横杠就会卡在那里,不会继续推倒后面的麻将牌,所以最终会输出0。
显然,异或门不能进位,但是我们把它和一个与门连在一起,就可以制造出一个叫做半加器的算术逻辑单元,它可以实现最简单的二进制计算,输出“和”以及“进位”。比如输入2个0,半加器输出进位0,和为0。输入1个0,1个1,半加器输出进位0,和为1。输入2个1,半加器输出进位1,和为0。半加器,C表示进位,S表示和。那么半加器怎么造呢?像这样——最上面的2个骨牌是输入,最下面的2个骨牌是输出。
左边那个输出和,右边输出进位。输入1和0,得到和为1(左边的骨牌),进位为0(右边立着的骨牌)。
2个半加器再加上一个或门,就可以得到一个全加器,也就是二进制的计算器了。用麻将牌也能操作,但是对麻将牌的需求量比较大(需要2副左右)。比如,下面这个方法,就可以输入3个0或1,输出一个2比特的二进制数(00,01,10,11,分别代表0,1,2,3)。
你可能注意到了,最后2个输出信号各自的显示时间可能会随着线路的长短而发生变化,不同的线路可能因为靠得特别近而发生干扰,这就有可能影响下一步的计算。在真实的计算机里也会遇到这个问题,因为信号的传输也不是立刻完成的,所以芯片工程师在设计的时候也要考虑到信号延时和干扰。总之呢,用这个麻将牌计算机,就可以做学前班水平的算数了。你爹问你拿着麻将玩啥呢,你说你在算1+1呢。
听起来有点智力衰退,但实际上你却是在造计算机,是不是棒呆!
亲爱的小伙伴们,你有没有尝试“机械计算机”?想让更多小伙伴看到你的作品?可以把你拍到的照片发给我们哦~你也可以把孩子的小名一起发过来展示在我们推送中。我们将每月抽一次奖,送一期电子版《环球科学》!