有限功能计算的组合

2023-05-30 13:37:04陈凯
中国信息技术教育 2023年9期
关键词:加法器灯亮二进制

陈凯

《红楼梦》中有“弱水三千,我只取一瓢饮”之语。“一瓢饮”最早见于《论语》中“一箪食,一瓢饮,在陋巷,人不堪其忧,回也不改其乐”。“弱水”一词有不同的含义,但都有飘渺不定的意味,《山海经》中有“昆仑之北有水,其力不能胜芥,故名弱水”,苏轼诗句中有“蓬莱不可到,弱水三万里”。据说《红楼梦》最早开创性地将“取一瓢饮”和用情专一联系起来,之前古人更多将“一瓢饮”与贪念的断除相联系,如有寓言故事说,某个十分口渴之人在面对一整个大湖的充沛水量时却总是无法下定主意要喝哪一瓢水。与“取一瓢饮”能遥相呼应的,是在计算模型的构造过程中,能不被纷繁复杂的诸多现象迷惑,而“专情”一种计算现象并加以利用的能力。

一个简单的触碰装置

想象这样一个场景,某人在游戏机房无聊闲逛,遇见一个从未见过的装置,装置上有两个画着手掌图案的触碰面板,装置左上方和右上方各有两盏灯。装置的样子如图1所示,这里称之为触碰装置A。这个装置在未被触碰时,两个灯都是不亮的,若按住左面手的图案或右面手的图案,装置右上方的灯会亮,当他同时用两个手按住面板时,装置左上方的灯会亮。作为一个游戏装置,这未免有些无趣,一个稍微有趣一点的问题是,这个装置到底有怎样的用处?

例如,可以想象这个装置是用来进行二进制加法计算的,对于学习过二进制计算的人来说,更容易产生这样的联想,表1展示了动作和亮灯的关系,的确正對应着两个一位的二进制数进行加法计算得出两位二进制数结果的过程。

关于触碰装置的头脑风暴

撇开二进制加法的问题,单纯地关注触碰装置A的工作过程,想象一下,既可以单独使用这个触碰装置A,或者也可以将多个触碰装置A级联,就是说将某些触碰装置A的输出信号接到某些触碰装置A的输入面板(某个触碰装置的灯的亮或暗,能影响另一个触碰装置的面板自动产生按住或松开的动作),那么,可以利用这些装置实现哪些场景中的具体功能呢?笔者针对自己的学生开展了一项给予充分思考时间的头脑风暴的调查,结果如图2所示,其中,大约35%的被调查者放弃了回答,差不多一半的被调查者虽然试图列举了可能的具体功能,但较难详细描述工作过程和功能之间的关系,只有差不多15%的被调查者不仅列出了这些装置可能实现的功能,也比较详细地描述了装置的工作过程。将调查换一个角度进行还能得到另一个有意思的结果,即便学生学习过二进制加法运算,也只有10%左右的学生主动联想到这个装置可用于二进制运算。

这里从调查结果中选取一些较为有趣的回答,如有学生认为可以用这个装置实现物品或人员的分类,有学生认为可以用来实现一个密码解锁的装置,还有学生提出,如果将这些装置间隔一定距离架设,就能实现信号的放大和传递,这个回答展现出这样的情况:即便是抛弃了装置的核心功能,也还是有可能发现其某些特殊的用途。

有一个回答值得重点展开讨论:这个装置其实也可以指示“少”和“多”、“局部”和“全体”之类的关系。不妨做这样的假设,徜徉于游戏厅的某人后来发现,刚才所“玩”的设备,其实被遮挡住了一部分,当整个装置都显露出来后,就能见到装置上有着三个触碰面板和三个灯,这里称之为触碰装置B,如图3所示。此人发现,需要两个人用三只手合作来和这个装置互动。

触碰装置B的反应规则如表2所示。当只有一个面板被按住时,最右侧的灯亮;当有两个面板被按住时,中间的灯亮;当三个面板都被按住时,最左侧的灯亮。可以用表格展示动作和亮灯的关系,可以看出,所亮灯的位置可以用来指示触碰面板的个数。这与二进制加法规则显然是不一致的,如果它真是一个二进制加法器,那么当被触碰面板个数为3时,亮起的应该是中灯和右灯。

在经过这么一番互动和思考后,人们反而可能打消认为此装置是一个二进制加法器的念头。不妨将此装置称为触碰装置B。甚至于还能继续扩充其计数能力,如装置C可以记录四个面板的触碰数量,装置D可以记录五个面板的触碰数量……不过,装置最右侧两列灯和触碰面板的局部行为和二进制加法器的行为仍然是完全一致的。若有人问,这些装置到底算不算是二进制加法器?该如何回答这个问题呢?因为很难说这到底是一个触碰计数装置,还是触碰加法装置,所以干脆称其为触碰交互装置。

用触碰交互装置的部分功能组装成为其他装置

毫无疑问,如果将触碰装置B的左侧部分遮掩,它们就又变回了触碰装置A,但如果被遮掩的是其他部分呢?例如,遮住左灯、中灯和左面板,它就成了一个可以进行异或逻辑运算的装置;遮住左灯、右灯和左面板,它就成了一个可以进行与逻辑运算的装置。其部分变化规律如下页图4所示。

这样,将多个触碰交互装置组合连结起来,就能开发出各种功能不同的计算装置了。例如,下页图5所示的是用三个触碰交互装置组合而成的三个一位二进制数的加法器,又称全加器——既然触碰装置B被部分遮挡后能当加法器使用,那么多个被部分遮挡的触碰装置B也就能组合成为具有更复杂功能的加法器了。对于更复杂的触碰交互装置,当然也同样能够借助遮掩而只使用其部分功能的方法,使之成为全加器。

下页图6所示是利用这个触碰交互装置实现或非运算和非运算,再将或非运算和非运算的计算装置级联,最终实现或运算计算装置的例子。

或非门是一种通用的逻辑门,只使用单一的或非门的组合,就可以搭建出任意的逻辑门元件。不妨戏称为“逻辑三千,我只取或非一种用”。另一种通用逻辑门是与非门,同样可以借助触碰交互装置的遮掩和连结搭建出来。

假设某装置有n个二进制输入端和m个二进制输出端,假设对于任何一种输入和输出的对应关系都能找出一套逻辑运算装置或装置的组合能满足这种对应关系,则这个装置是逻辑完备的,或非门就是一种逻辑完备的计算装置。既然通过遮掩和组合的触碰交互装置能实现或非计算,那么,触碰交互装置当然也是逻辑完备的。

回到文章开头的话题,“弱水三千,我只取一瓢饮”,自然界事物的行为虽然千变万化,但对于某些事物,施加以某些动作作为“输入”,它总能有规律地产生某些行为作为“输出”,当这些“输入”和“输出”的行为恰好对应某个计算需求的时候,就能使用这个事物的这种特定的行为实现某种计算。

猜你喜欢
加法器灯亮二进制
分段式高性能近似加法器设计
用二进制解一道高中数学联赛数论题
中等数学(2021年8期)2021-11-22 07:53:38
2019款广汽本田凌派发动机故障灯亮
有趣的进度
二进制在竞赛题中的应用
中等数学(2019年4期)2019-08-30 03:51:44
一种混合结构的新型近似加法器
通用加法器的逻辑实现与分析
电子世界(2018年1期)2018-01-26 04:58:08
三旋光结构一步无进位加法器的设计
宝马750li发动机大修后安全气囊灯亮
福建奔驰凌特车发动机故障灯亮