《图灵完备》游戏攻略第二章:算术运算和存储器——二进制速算

《图灵完备 Turing Complete》游戏攻略保姆级详解。

第二章:算术运算和存储器

前言
我们进入了第二章:算术运算和存储器。在第二章中,我们将会有两条支路,我们要研究算术运算和存储器,最后会制作出逻辑引擎、“小盒子”、计数器等。

二进制速算

在开始之前,我们先复习一下学过的逻辑门:
汉语 英语 性质
与门 AND 全绿就绿
或门 OR 有绿就绿
非门 NOT 就是叛逆
或非门 NOR 全红就绿
与非门 NAND 全绿就红
同或门 XNOR 不同就红
异或门 XOR 不同就绿

关卡解析

这一关和其他关卡不太一样,它更像是一个小游戏。你需要在玩这个小游戏的过程中,理解二进制的几个特点。这个小游戏并不难,你可以先自己玩,再听我来解析。具体玩法就是用下面的数字拼出来他给的数字。

这关貌似有个BUG,它说必须通关3级,实际上必须把5级都玩完。

二进制

我们生活中有很多种进制,例如最常用的十进制,表达色彩用的十六进制,表达时间用的六十进制,计算机底层使用的二进制等等。我们先来说说进制是什么。
从十进制说起,顾名思义就是逢10进1,例如:0-1-2-3-4-5-6-7-8-9,这时候就不能继续数了,要进1位,即:10-11-12-13-... 。我们可以看出,在十进制中,其实是没有“十”这个数字的,所谓的“10”,其实只是进了一位,是由“1”和“0”拼起来的。
我们再看看十六进制,十六进制在数到9之后是可以不进位继续数的,例如:0-1-2-3-4-5-6-7-8-9-A-B-C-D-E-F,数到F就不能继续数了,需要进行进位,即:A1-A2-A3-A4-...,接下来一直数到FF,就需要再进位一次,变成:AA1-AA2-... 。
也就是说,是几进制,这个数字就不存在,数到这个数字的前一位就不能数了。如果要继续往下数,就得进位。
现在我们再来看二进制,2-1=1,也就是说,二进制在数到1的时候就不能往下数了,必须要进位。所以,它是这样数数的:0-1-10-11-100-101-110-111-1000-... 。二进制就是即逢2进1,2不存在,是由“1”和“0”拼起来的。请确保你理解了二进制是什么。

位权

说了这么多,这个关卡到底需要我们明白什么?我们还需要引入新的概念——位权。

数-1

其中,几进制基数就是几。在二进制中,可以这样书写:

=2数-1

假设我们现在有一个8位的二进制数10101010,那么根据公式计算,可得它每一位的位权分别是:128、64、32、16、8、4、2、1。你有没有发现,这和本关下方的按钮是一样的?

现在,我来举几个例子,你对照上图,就能发现其中的奥妙:
  • 二进制100转化为十进制是多少?是4
  • 二进制10000转化为十进制是多少?是16
  • 二进制10100转化为十进制是多少?是4+16=20
还不懂?我再举几个:
  • 二进制10转化为十进制是多少?是2
  • 二进制111000转化为十进制是多少?是32+16+8=56
  • 二进制10010101转化为十进制是多少?是128+16+4+1=149
  • 二进制11111111转化为十进制是多少?是128+64+32+16+8+4+2+1=255
明白了吗?这对进制转换有很大的帮助。现在你可以尝试以这种思路,再次游玩本关卡。

成对的麻烦

关卡解析

我们输入已经拓展到了4个。现在来观察真值表,找到规律。

规律就是:“当有≥2个绿,输出绿”这关的解决方法也比较简单。首先把四个输入端两两接入与门检测,根据我们小学就学过的排列组合,4个输入端的排列方式有:
  • (1,2), (1,3), (1,4),
  • (2,3), (2,4),
  • (3,4)

共6种组合方式,因此我们需要用到6个与门:

将它门按照我们策划过的排列组合进行连接:

然后将这些结果使用或门连接,我们可以使用2个三路或门+1个或门:

本关最终答案
这样就完成了,但是不知道有没有更好的方法。

奇数个信号

关卡解析
本关要求我们使用3个元件,实现“输入绿为奇数个,就输出绿”。

首先我们要先看到问题的本质,假设我们现在只有两个输入端口,那么我们如果想判断是否是奇数个为绿,其实我们判断的就是这两个输入是不是一个绿一个红。那么什么逻辑门是能解决这个问题的呢?是异或门。

这种情况下,“判断输入是否不同”==“判断绿色是不是奇数个”。当我们的输入数拓展到4个,其实问题也是如此。我们只需要先判断两个,然后判断后两个,再把这两个判断结果放在一起判断即可。

本关最终答案

循环依赖

循环依赖

循环依赖是指一个或多个对象之间存在直接或间接的依赖关系,这种依赖关系构成一个环形调用,有下面 3 种方式。

图片来源于 https://www.elecfans.com/d/1891334.html
在本游戏中,至少目前,循环依赖是被禁止的。在某些电路中,循环依赖是被允许的。目前你不需要知道哪些电路是被允许的。

关卡解析

我们构建一个受自身影响的电路即可。也就是说,一个元件的输出连接到自身的输入上,例如:

本关最终答案

其实此结构也可以满足测试2的要求:

信号计数

关卡解析
如果你还没有学习二进制相关知识,可以在目录里查找学习。
本关较为复杂,用到了很多之前的知识,我们需要一点点思考,解决问题。

请务必先理解本关的目标:

我们的输出端一共有3个引脚,分别是1、2、4。这3个引脚是怎么运作的呢?是这样的:
  • 第一个被点亮了结果就+1
  • 第二个被点亮了结果就+2
  • 第三个被点亮了结果就+4
也就是说:
  • 输入端亮了1个→让输出端的第一个亮
  • 输入端亮了2个→让输出端的第二个亮
  • 输入端亮了4个→让输出端的第三个亮
也许你会问:“那如果亮了三个,该怎么办?”,其实这就是我们这关需要解决的最大问题。我们不妨先把前三种情况做出来,先忘掉亮了三个这种情况。
先解决第一个:如何判断输入端是否有1个绿?因为输入端有几个绿只有四种情况,即1个、2个、3个、4个。而且“3个”这种情况先被我们刨除在外了,就只剩下1个、2个、4个这三种情况。在剩下的三种情况中,显然只有“1个”是奇数,而“2个”和“4个”都是偶数,所以“1个”是最好确定的。
还记得我们之前有一关叫什么名字吗?“奇数个信号”,我们是学习过如何判断奇数个信号的:
  • 这种情况下,“判断输入是否不同”==“判断绿色是不是奇数个”

我们可以直接沿用“奇数个信号”的电路:

观察真值表,我们可以发现,所有预期输出1的地方,全都正确了。
现在我们来考虑:如何判断输入端是否有2个绿?我们好好回忆一下,其实我们做过类似的电路。记不记得我们做过一个电路:“如果≥2个绿,则输出绿”?没错,是在“成对的麻烦”那关。现在我们只要把电路改成:“如果≥2个绿,且不是4个绿,则输出到第2个端口”即可。

现在我们来回忆一下:如果想判断是不是有两个是绿,只需要成对进行与门判断,然后再用或门连接即可。我们将这个电路做出来:

然后,我们将刚才做的两个电路,结合一下。注意,该插在哪个孔的还要插在哪个孔。

运行后发现,我们不仅解决了2的问题,还解决了我们刨除掉的3的问题,这是为什么?很简单,因为1+2=3,这用到了我们之前的进制转换原理。我们做好了1的电路,2的电路,当这两个电路叠加在一起,自然就是3的电路。

现在,我们只差4的电路,我们只要检测四个输入端口是否全是绿色即可,这很简单。先两两判断,然后再总的判断:

接下来,我们将3个电路合在一起。注意,该插在哪个孔的还要插在哪个孔。

运行后发现,还是不能准确的判断4的结果,显示为6。分析,错误源于“当同时出现4个绿色时,必然同时出现2个绿色”,因此,4+2=6。我们需要想办法做到“当同时出现4个绿色时,使2的电路失效”。我们只需要在2路和3路上加一个异或门,也就是“在2路和3路中,只有1个输出绿色时,才能在2路输出绿色”,可以理解为“只有在3路关闭时,2路才能启用”。这就是本关的完整电路:

本关最终答案

题外话

给大家看看我在没有好好分析的情况下硬造的版本,奇迹的是它能够满足要求!这里奉劝大家,在拓展思维发散创意的同时,也要先理解题目的含义,搞清楚需要运用到哪些知识点。




《图灵完备 Turing Complete》游戏攻略保姆级详解

你可以通过《图灵完备》这款游戏,学习处理器架构,搭建自己的伟大作品。游戏闯关模式的最终目标是搭建一台可以运行的计算机。我将会开始更新这款游戏的攻略,详细解析每一关的通关思路,并且讲解背后的原理。


以下三章为《图灵完备 Turing Complete》游戏手把手教程(教程原创为知乎:淘气喵w,特此说明)
第一章:基础逻辑电路

第二章:算术运算和存储器


第三章:处理器架构




24小时热点

热点专题

免费的行情软件app网站在国外有哪些?

区块链看行情的软件,简而言之,就是一类能够实时提供数字货币行 ...

2382721

波场区块链浏览器

2024年最新十大不收费看盘软件排名公布

随着股市交易的普及和技术的发展,投资者对高效、可靠且免费的看 ...

1132523

波场区块链浏览器

Bitfinex(香港B网)

Bitfinex交易平台目前仍处于试运营阶段,该平台由iFi ...

727339

Hi元宇宙

OEX全球站交易所介绍

OEX(www.oex.com)隶属于OEX Interna ...

643654

Cointelegraph Bitcoin

挖矿app十大排名,挖矿软件推荐

区块链技术自比特币诞生以来,已经在全球成为最热门的一项技术, ...

577399

波场区块链浏览器

FSN币,Fusion

FUSION是一个公开的区块链,通过提供跨链、跨组织和跨数据 ...

500268

ImToken 多链钱包

区块链免费看行情的网站有哪些?

区块链行情网站,简单来说,就是提供数字货币实时价格,交易量, ...

498285

区块链圈小菜鸡

1U等于多少人民币?U币怎么兑换人民币?

U币(如USDT)是一种基于区块链技术的稳定币,其价值与美元 ...

489022

区块链圈小菜鸡

全球币圈十大交易所排名有哪些?最新2024年币圈十大交易所排行榜

在加密货币市场中,交易所是投资者进行数字资产买卖的关键平台。 ...

455023

区块链圈小菜鸡

2024年人气最高的免费看行情的软件大全

区块链看行情的软件是指那些能够提供实时数字货币行情、市场动态 ...

454369

波场区块链浏览器