图灵完备游戏:信号计数 解法记录

image-20230527121247983

使用1个全加器 + 2个半加器完成。这关的思想主旨在于如何把输出4,输出2,输出1的情况统一在一根导线上。

首先用一个全加器来完成输入2-4这三个引脚的计数,因为全加器输出范围二进制是00 - 11,而输入正好有两个引脚数位是2和1,刚好满足3个输入计数的所有情况。

剩下一个输入需要做分组判断,分为输入1亮的情况和输入1不亮的情况,按计数量分类:

**计数0的情况:**整个电路没有非门,没输入就没有输出,不用管。

**计数1的情况:**分为【输入1亮】和【输入1不亮,输入2-4其中一个亮】的情形。将一个半加器的输入a和电源输入1对接,输入b和下面全加器的s端连接,这样对于情形2,下面全加器的输出端就成为上面半加器的输入了,半加器s端输出1;对于情形1,半加器s端同样输出1,两个情形统一,于是半加器s端正好和终点数位为1的引脚绑定。

**计数2的情况:**分为【输入1亮,输入2-4其中一个亮】和【输入1不亮,输入2-4其中两个亮】的情形,前者有3种情况,后者有C2 3 = 6种情况, 由于我们的全加器s端是上面半加器b端的输入,于是情形1的三种情况全部可以统一为半加器s端输出0,c端输出1, 意思表示就是二进制10 = 2,于是半加器c端和终点数为2的引脚绑定。对于情形2,正好落在全加器的计数范围内,统一为全加器c端输出1,s端输出0,于是全加器c端也可以和终点数为2的引脚绑定,但两个c端都绑定同一个终点就会短路,怎么办呢?这时候第三个半加器就出来了,为方便区分,我们称上方半加器和新加入的半加器分别为半加器1,半加器2,下方全加器称全加器1。

半加器1c端和全加器1c端分别绑定半加器2输入a和输入b,由于计数2情况下,半加器1c端输出1和半加器2c段输出1不可能同时存在,两种情况最终统一为半加器2的s端输出1, 半加器2s端于是可以和终点数位为2的引脚绑定。

计数3的情况: 分为【输入1亮,输入2-4其中两个亮】和【输入1不亮,输入2-4全亮】的情形,情形1是C2 3 = 6种情况,情形2只有1种情况,共7种情况,实际上这里的逻辑是计数1和计数2两个情况的叠加。由于之前计数2和计数1的输出已经被统一了,于是不管那种情况,最终都统一为半加器1s端输出1,c端输出0和半加器2s端输出1,c端输出0的情况。

为什么会这样呢?可以看看,不管是情形1还是情形2,由于输入2-4的输入情况都在两个亮及以上,全加器1的c端输出一定为1,由于全加器1的c端输出是半加器2的b端输入,因此可转化为半加器2的s端输出一定为1,而这个输出正好和数位2引脚绑定。由于全加器1的s端输出又是半加器1b端的输入,因此输入1能够通过半加器1的s端输出来控制终点数位为1引脚的亮暗,

对于情形1,输入1亮,半加器1s端输出1,半加器2的s端输出1,分别点亮数位1和数位2两个引脚,输出3。

对于情形2,全加器s端和c端都输出1,s端输入给半加器1,c端输入给半加器2,于是半加器1s端和半加器2都输出1,分别点亮数位1和数位2两个引脚,输出3。

**计数4的情况:**全加器1s端和c端都输出1,由于全加器1的s端输出是半加器1b端的输入,于是半加器1s端输出0,c端输出1, 半加器1c端输出和全加器1c端输出分别成为半加器2a端和b端的输入,于是半加器2 s端输出0, c端输出1,正好对应计数4的情况,和引脚为4的终点绑定。

码了一个小时的字真不容易。。。。。看看youtube那个硬编码式的解答方案,有点计算机基础真好。。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/25288.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

高压放大器在大学教研领域的实际应用

在大学教研领域中,高压放大器可以用于多种实际应用。下面将介绍其中几个典型的应用场景。 1、激光切割 适用高校学院:机械学院 应用场景:机械制造、各类材料的切割 2、超声雾化 适用高校学院:医学院、机械学院、物理学院 应用场景…

《Spring Guides系列学习》guide31 - guide34 及中期简单回顾

要想全面快速学习Spring的内容,最好的方法肯定是先去Spring官网去查阅文档,在Spring官网中找到了适合新手了解的官网Guides,一共68篇,打算全部过一遍,能尽量全面的了解Spring框架的每个特性和功能。 接着上篇看过的gu…

使用 GitHub Actions 自动部署 Hexo 个人博客

文章目录 申请 GitHub Token源码仓库配置 Github Action重新设置远程仓库和分支查看部署 每次部署 Hexo 都需要运行 hexo cl & hexo g & hexo d 指令三件套完成推送到远程仓库,随着文章越来越多,编译的时间也会越来越长,通过 Github …

chatgpt赋能python:Python创建venv的完全指南

Python创建venv的完全指南 在Python开发中,虚拟环境是一个非常有用的工具。它可以让我们在同一台计算机上拥有多个Python环境,而不会互相干扰。在本文中,我们将介绍如何使用Python创建venv(虚拟环境)。 什么是venv&a…

形态学图像处理和图像分割MATLAB实验

文章目录 一、实验目的二、实验内容1. 开运算和闭运算实验。2. 用形态学处理提取边界。4. 全局阈值处理。 一、实验目的 理解腐蚀和膨胀的原理,掌握开运算、闭运算及形态学的边界提取。掌握孤立点检测、线检测和边缘检测的方法。掌握全局阈值处理的方法。 二、实验…

如何在上架App之前设置证书并上传应用

App上架教程 在上架App之前想要进行真机测试的同学,请查看《iOS- 最全的真机测试教程》,里面包含如何让多台电脑同时上架App和真机调试。 P12文件的使用详解 注意: 同样可以在Build Setting 的sign中设置证书,但是有点麻烦&…

C语言函数大全-- y 开头的函数

C语言函数大全 y 开头的函数1. yperror1.1 函数说明1.2 演示示例 2. yp_match2.1 函数说明2.2 演示示例 3. y0【零阶第二类贝塞尔函数】3.1 函数说明3.2 演示示例3.3 运行结果 4. y1【一阶第二类贝塞尔函数】4.1 函数说明4.2 演示示例4.3 运行结果 5. yn【n 阶第二类贝塞尔函数…

Python IDLE介绍

目录 IDE(集成开发环境)是什么 Python IDLE使用方法详解 Python IDLE常用快捷键 IDE(集成开发环境)是什么 IDE 是 Integrated Development Environment 的缩写,中文称为集成开发环境,用来表示辅助程序员…

第五章 图像处理

文章目录 前言一、图像金字塔1.高斯金字塔2.拉普拉斯金字塔 二、图像轮廓1. 轮廓提取2. 轮廓绘制3. 轮廓特征4. 轮廓近似5. 轮廓标记 三、模板匹配四、直方图1. 对比度2. 绘制直方图3. 均衡化3.1 理论3.2 代码 4. CLAHE 五、图像傅里叶变换5.1 正弦平面波5.2 二维傅里叶变换5.3…

VITS语音生成模型详解及中文语音生成训练

1 VITS模型介绍 VITS(Variational Inference with adversarial learning for end-to-end Text-to-Speech)是一种结合变分推理(variational inference)、标准化流(normalizing flows)和对抗训练的高表现力语…

fastjson 1.2.24 反序列化导致任意命令执行漏洞复现

前言 fastjson是阿里巴巴的开源JSON解析库,它可以解析JSON格式的字符串,的作用就是把java对象转换为json形式,也可 以用来将json转换为java对象。 fastjson在解析json的过程中,支持使用autoType来实例化某一个具体的类&#xff…

20230530论文整理·1-课题组1

个人观点,现在的NLP文章,有些是在做积木,微创新,有些文章,是可以的,读起来很美,有些,太过逆了,吃起来没味道,反胃。 文章目录 1.CODEIE: Large Code Generat…

TreeMap(1):TreeMap介绍

1 TreeMap的特点 概念: TreeMap是一个双列集合,是Map的子类。底层由红黑树结构构成。 特点: 元素中键不能重复元素会按照大小顺序排序 2 TreeMap的数据结构 2.1二叉查找树 2.1.1二叉查找树的定义 特点: 若左子树不空&#…

从C语言到C++_13(string的模拟实现)深浅拷贝+传统/现代写法

前面已经对 string 类进行了简单的介绍和应用,大家只要能够正常使用即可。 在面试中,面试官总喜欢让学生自己 来模拟实现string类, 最主要是实现string类的构造、拷贝构造、赋值运算符重载以及析构函数。 为了更深入学习STL,下面我…

乐谱文件转换,支持批量mscz、mxl、musicxml转mp3等格式

我是一个喜欢听音乐的人,每天都会在路上听着歌放松自己。但是有时候想要听的歌并没有下载下来,或者格式不兼容。 最近我发现了一个神奇的软件——mscz转mp3,可以把乐谱文件转成mp3格式! 软件界面简洁明了,使用也非常…

【JavaSE】Java基础语法(四十四):XML解析

文章目录 1. 概述2.标签的规则3. 语法规则【应用】4. xml解析【应用】 1. 概述 万维网联盟(W3C) 万维网联盟(W3C)创建于1994年,又称W3C理事会。1994年10月在麻省理工学院计算机科学实验室成立。 建立者: Tim Berners-Lee (蒂姆伯纳斯李)。 是Web技术领域…

Hive安装部署

1、Hive安装地址 ①Hive官网地址 Apache Hive ②文档查看地址 GettingStarted - Apache Hive - Apache Software Foundation ③下载地址 Index of /dist/hive ④github地址 GitHub - apache/hive: Apache Hive 2、 安装Hive 1)把apache-hive-3.1.3-bin.ta…

数据结构-顺序表

数据结构-顺序表 线性表顺序表的概念和结构静态顺序表和动态顺序表 接口的实现顺序表的初始化顺序表的打印顺序表的销毁顺序表的增容顺序表的尾插顺序表的尾删顺序表的头插顺序表的头删顺序表的任意位置插入顺序表的任意位置删除顺序表中元素的查找 完整代码 线性表 线性表是n…

MyBatis 环境搭建+基本使用

目录 MyBatis创建MyBatis环境搭建MyBatis模式开发MyBatis 获取动态参数(查询操作)${} 直接替换#{} 占位符模式替换like查询(模糊查询)多表查询一对一的表映射一对多的表映射 增、删、改操作改操作删除操作增加操作添加用户添加用户…

JVM学习(十三):面试中绕不开的String

目录 一、String 的基本特性 1.1 String类的声明 1.2 String的存储方式在jdk9中的变更 1.3 Stirng 的不可变性 二、String的内存分配 2.1 字符串常量池是什么 2.2 底层原理与默认值 2.3 字符串常量池所在位置 三、字符串的拼接操作 3.1 拼接操作结果存放位置 …
最新文章