欧易OKX

注册并登录App即可领取高达60,000元的数字货币盲盒,享受高额返佣。

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

《图灵完备 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,特此说明)
第一章:基础逻辑电路

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


第三章:处理器架构




欧易OKX

注册并登录App即可领取高达60,000元的数字货币盲盒,享受高额返佣。

24小时热点

新加坡全球中介机构识别号码GIIN(FATCA),完整版GIIN Code

美国国家税务局(IRS)发布了一份《海外账户纳税法案》(FA ...

50357

中值联资讯

易孔链

易孔链 上海易孔电子商务有限公司旗下区块链项目 ...

18971

REVV Motorsport

普华资本

一、普华资本简介 普华资本是中国最大的投资管理公司之一 ...

48741

NFTKEY

热点专题

区块链网是什么

中国区块链价值评价中心 中国区块链价值评价中心于2 ...

5249557

知信链

元界(Metaverse)

元界(Metaverse)是一个去中心化的公有区块链项目,元 ...

934581

WEEX数字货币

BTC123

BTC123(www.btc123.com)成立于2011年 ...

693791

Kusama 测试网

DAC币——达芬奇Davinci Coin

达芬奇项目的平台是通过叫作"Dchain"的自身区块链把可以 ...

676125

Mechanism Capital

Bitfinex(香港B网)

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

641664

Hi元宇宙

MCO币

MCO,前为Monaco,朝着让每个钱包都载有加密货币的愿景 ...

640691

第九空间

熊猫矿机(PandaMiner)

熊猫矿机(PandaMiner),企业文化背景为:其一,熊猫 ...

610849

金融界区块链频道

陈景润证明哥德巴赫猜想1+2的论文

大偶数表为一个素数及一个不超过二个素数的乘积之和 。 本 ...

539233

鲸探

五大区块链骗局揭露

从古至今,骗子这个行当一直都是经久不衰,上至皇宫贵族,下至农 ...

505771

DeRace

FSN币,Fusion

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

472090

ImToken 多链钱包