考大家一个比较绕弯的问题

[复制链接]
楼主: niufen556
手机看帖
扫描二维码
随时随地手机跟帖
maychang| | 2019-7-20 19:44 | 显示全部楼层
niufen556 发表于 2019-7-20 19:19
当时怎么也想不明白上学时,后来有一天突然发现这是一个数学应用问题,同一电路在不同的规定下可实现  不 ...

数学上,这些问题属于“布尔代数”。你13楼贴出的电路图,规定正逻辑负逻辑等等,在布尔代数中是一条定理,甚至可能是一个练习题。

使用特权

评论回复
computer00| | 2019-7-20 20:01 | 显示全部楼层
楼主按照惯性思维,认定了逻辑相乘一定就是两个开关串联的,可是,我们从来没有规定过逻辑相乘就是两个开关串联,
也没有规定过两个开关串联就一定是逻辑相乘。两个开关串联等价于逻辑相乘,是在闭合表示1,断开表示0这种前提条件之下的。
你现在把逻辑反过来了,闭合表示0,断开表示1,那么要表示逻辑相乘,就应该把两个开关并联起来,串联起来之后的逻辑显然是错的。
如下图所示,如果用反逻辑,开关断开表示1,灯灭表示1。按照我们对逻辑相乘的定义,只有1*1才能为1,所以只有当S1、S2
同时断开(1)时,灯才会灭(1)。当S1、S2任意一个闭合时(0),灯亮(0)。所以这个电路才是符合逻辑相乘的电路。
所以,用电路来表示逻辑相乘,是有前提条件的,如果你把前提条件换掉,那么这个电路就不能再表示这种逻辑。


1.png

使用特权

评论回复
叶春勇| | 2019-7-20 20:15 | 显示全部楼层
niufen556 发表于 2019-7-20 19:31
就想那个开关串联一个灯泡的例子,从灯亮的角度两个开关是“与”的关系,两个开关都闭合灯才亮,如果从灯灭 ...

你这种说法时错误的,两个开关串联也可以理解成或门。因为逻辑代数,或门可以由与门和非门表达,与门可以由或门和非门表达。
美国登月舱导航电脑,用的时3输入或非门。
2.png
1.png

使用特权

评论回复
niufen556|  楼主 | 2019-7-20 21:33 | 显示全部楼层
本帖最后由 niufen556 于 2019-7-23 09:06 编辑
computer00 发表于 2019-7-20 20:01
楼主按照惯性思维,认定了逻辑相乘一定就是两个开关串联的,可是,我们从来没有规定过逻辑相乘就是两个开关 ...


感谢解惑,你说出了问题的本质,我上学时老师就按书本举那个两个开关串联一个灯泡的例子,于是引出1×0=0,我当时就多想了一下如果我反着规定不就得出1×0=1了吗,当时一度怀疑1×0=0的正确性与适用性。后来才发现这就是个数学应用问题,逻辑代数1×0=0就是个规定,一种符号规定,规定是不讲什么道理的,有了规定就有了前提,有了前提才可往后发展,后来才发现两个开关串联一个灯泡这个电路在不同的规定下既可以表达逻辑“与”又可以表达逻辑“或”。

使用特权

评论回复
niufen556|  楼主 | 2019-7-20 21:55 | 显示全部楼层
叶春勇 发表于 2019-7-20 19:20
看了楼主的说法,好像我也绕进去了,但是经过仔细一分析,发现问题所在。
...

能不能具体的讲一下

使用特权

评论回复
叶春勇| | 2019-7-20 22:07 | 显示全部楼层
niufen556 发表于 2019-7-20 21:55
能不能具体的讲一下

逻辑代数,描述电路的功能。y=axb
1和0,是数值计算。1x0=0
你的描述是当你把1和0带入 逻辑代数的表达式中进行数值计算。
要确保两个电路是否等效。不等效,你进行数值运算,得到两种结果很正常。
如果等效,你得出两种结果,那逻辑代数可以推翻。
要区别好,代数表达式和数值运算。
所以,你取反逻辑了,逻辑代数表达式变了。你进行数值运算,结果不一样。是必然的。

使用特权

评论回复
niufen556|  楼主 | 2019-7-20 22:19 | 显示全部楼层
叶春勇 发表于 2019-7-20 22:07
逻辑代数,描述电路的功能。y=axb
1和0,是数值计算。1x0=0
你的描述是当你把1和0带入 逻辑代数的表达式 ...

感谢深度解惑,在我看来其实最终得0还是1不重要,它就是一个符号而已,不同的规定得到不同的结果

使用特权

评论回复
chunk| | 2019-7-21 07:39 | 显示全部楼层
niufen556 发表于 2019-7-20 18:40
两个开关串联怎么就成“或”的关系了?同一个电路既可以实现“与”的关系又能实现“或”的关系? ...

设开关为A和B,这图有两种说法:(1)当AB都接通时,灯亮;(2)当AB有一个断开时,灯灭;

使用特权

评论回复
评论
maychang 2019-7-21 08:27 回复TA
这个说法比较简明扼要。 
xiuyueyuan2013| | 2019-7-21 09:31 | 显示全部楼层
支持楼主帮顶一下

使用特权

评论回复
niufen556|  楼主 | 2019-7-21 09:54 | 显示全部楼层
xiuyueyuan2013 发表于 2019-7-21 09:31
支持楼主帮顶一下

谢谢

使用特权

评论回复
niufen556|  楼主 | 2019-7-21 09:58 | 显示全部楼层
king5555 发表于 2019-7-20 23:06
原本是F=A×B,现在你改成F巴=A巴×B巴就等于F=(A巴×B巴)巴=(A+B),巴是字母上面加一横线等于反向。改过 ...

我当时纠结的不是这些问题,我当时纠结的是逻辑代数公式“1×0=0”的正确性与适用性,既然在不同的规定下1×0不一定得0有时还得1,那为什么我们在设计逻辑电路化简逻辑代数时都认为1×0=0?

使用特权

评论回复
tianxj01| | 2019-7-21 10:20 | 显示全部楼层
niufen556 发表于 2019-7-21 09:58
我当时纠结的不是这些问题,我当时纠结的是逻辑代数公式“1×0=0”的正确性与适用性,既然在不同的规定下 ...

逻辑代数是一类派生出来的算法,目标是解决现实逻辑系统的扩展、代换、化简等用途。
你用开关表述其实是一个狭隘的替代,其研究目标是和线性过程对应的逻辑过程,即高电平=逻辑1,而低电平=逻辑0,这是正逻辑系统的基本定义。
至于开关的动作,你接在上拉电阻和低电平之间时候,则开关闭合=逻辑0,开关打开=逻辑1,而和开关闭合本身算什么逻辑没直接关系。
你的错误是在于把开关动作直接当作逻辑值来进行正反设置,这直接导致了所有逻辑代数系统定义的混乱。
而标准的逻辑1=高电平则是逻辑代数正逻辑系统的的基本定义,这个是不允许你别出心裁自由定义的。

使用特权

评论回复
elife| | 2019-7-21 10:54 | 显示全部楼层
tianxj01 发表于 2019-7-21 10:20
逻辑代数是一类派生出来的算法,目标是解决现实逻辑系统的扩展、代换、化简等用途。
你用开关表述其实是 ...

这个说到正点。楼主是迷惑于整个布尔代数理论中,基本运算是否完全,是否异常,如果定义了异常的运算,是否会有奇怪的结果。这个估计要高深的数学知识。

使用特权

评论回复
computer00| | 2019-7-21 11:21 | 显示全部楼层
niufen556 发表于 2019-7-20 21:33
感谢解惑,你说出了问题的本质,我上学时老师就按书本举那个两个开关串联一个灯泡的例子,于是引出1×0=0 ...

所以说前提条件很重要,同样的形式,在不同的假设和前提下,会得到不同的结果。
再例如对于同样的一个式子1+1=?,我们可以说1+1=2(10进制),也可以说1+1=10(二进制),
也可以说1+1=1(逻辑或),甚至在C++里还可以重载运算符,这都没有错,但我们不能因此就去
怀疑加法运算的正确性,它只是在不同前提条件下的一种表现形式而已,并不绝对和唯一。
同样对于这个开关串联电路,只有在正逻辑的前提之下,才能说这个电路是“与”的功能。

不过倒是有好几位网友没有抓住楼主的疑问点,上来就是一堆公式,有点答非所问了,并不能解决楼主的疑惑。

使用特权

评论回复
叶春勇| | 2019-7-21 13:37 | 显示全部楼层
的确比较绕弯。
无标题.png

使用特权

评论回复
niufen556|  楼主 | 2019-7-21 17:02 | 显示全部楼层
本帖最后由 niufen556 于 2019-7-22 17:09 编辑
elife 发表于 2019-7-21 10:54
这个说到正点。楼主是迷惑于整个布尔代数理论中,基本运算是否完全,是否异常,如果定义了异常的运算,是 ...


你说的对,我知道哪些什么正逻辑的与相当负逻辑的或之类的正负逻辑之间的对等与变换,我纠结的是逻辑代数公式1×0=0的正确性与适用性,因为上学时老师引出逻辑“与”和逻辑代数公式“1×0=0”时都是用那个两个开关串联一个灯泡的例子,并且规定开关闭合为1断开为0灯亮为1灭为0,于是引出逻辑关系“与”和逻辑代数公式“1×0=0”。我当时就想既然1和0与开关闭合的对应关系是人为规定的,如果我不那么规定,我规定开关闭合为0断开为1灯亮为0,再让一个开关闭合一个开关断开结果灯不亮,不就得出“1×0=1”了吗?于是我就联想到我们设计组合电路时既然高低电平为1或为0也是人为规定的,那我们在化简逻辑代数表达式时怎么确保逻辑代数公式“1×0=0”一定适用?于是当时就怀疑逻辑代数公式的完备性,我当时就认为逻辑代数公式是在一定的规定下才成立不同的规定逻辑代数不一定正确。直到到后来才发现逻辑代数公式“1×0=0”就是个规定,规定是不讲道理的,整个逻辑代数体系就是在1×0=0  1+0=1 1非=0  这几个基本规定的前提下成立的。而我们在逻辑电路设计时用逻辑代数的前提也是要保证高低电平的规定和基本的门电路的通断要对应起来。要想用逻辑代数1×0=0就得使最基本的逻辑“与”电路高低电平的规定使1×0=0成立,你不能使你的规定导致1×0=1出来。就拿那个两个开关串联一个灯泡的例子来说吧,要想这个电路表达逻辑“与”就要把规定和逻辑代数公式对应起来,你得使1、0的规定满足这个电路是“与”的逻辑,不能使开关闭合断开和1、0的对应关系导致得出逻辑“或”,有了规定才有前提,否则一切结果都是不确定的。

使用特权

评论回复
评论
xmar 2019-7-24 11:42 回复TA
布尔代数公理体系规定1X0=0. 不是从“用那个两个开关串联一个灯泡的例子”导出的!数学需要严谨。假如楼主发明一种代数体系规定1X0=1也未尝不可。只是你这个体系有用吗? 
niufen556|  楼主 | 2019-7-21 17:06 | 显示全部楼层
本帖最后由 niufen556 于 2019-7-21 20:54 编辑
叶春勇 发表于 2019-7-21 13:37
的确比较绕弯。


感谢不辞辛苦的打字,你说的有道理。但是你没发现你根据真值表得出逻辑函数表达式是怎么得出的?前提都是认为1×0=0的前提下得出的

使用特权

评论回复
叶春勇| | 2019-7-21 19:04 | 显示全部楼层
niufen556 发表于 2019-7-21 17:06
感谢不辞辛苦的打字,你说的有道理。有时候书本的东西真不敢多想,可能当时理解不了本质 ...

21ic网站有很多人发基础性问题的帖子。回答也不好回答。我个人不太喜欢研究基础性问题。
就像我当初设定目标,会设计10个晶体管以内的组合逻辑及时序逻辑。
我找到了美国阿波罗导航电脑的电路图,和麻省理工的《从与非门到计算机系统》
美国阿波罗的agc都是用nor门建立的,而麻省理工的那本书用的nand门。
我个人复习自己的知识,不喜欢用教材,还是要找实际的工程项目。这样你就知道教材里面哪些东西是实用的,有些是不实用的。

使用特权

评论回复
评论
xmar 2019-7-24 11:46 回复TA
对的,工程问题与基础理论问题搅和在一起容易使人困惑。 
niufen556|  楼主 | 2019-7-21 21:06 | 显示全部楼层
叶春勇 发表于 2019-7-21 19:04
21ic网站有很多人发基础性问题的帖子。回答也不好回答。我个人不太喜欢研究基础性问题。
就像我当初设定 ...

我也知道研究这些没用,但是这是上学时的一个心结,后来工作了也不能放下,也时不时的想起,直到后来突然有一天想明白了,如果你知道我的想法在哪出错了就告诉我

使用特权

评论回复
叶春勇| | 2019-7-21 21:47 | 显示全部楼层
本帖最后由 叶春勇 于 2019-7-21 21:55 编辑

你的想法就是错在串联等于与门。
看你对数字电路这么感兴趣,一起讨论下,从晶体管构建cpu。
我数字电路的学习目标就是从晶体管构建能用的简单处理器。围绕这个目标去学习教材的东西。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则