问题标签 [boolean-algebra]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
math - 将此逻辑句转换为连接范式
我正在努力将这句话转换为 CNF:
(A ∨ B) ⇔ (C ∧ D)。
我已经尝试使用双条件消除逻辑规则来消除⇔。
(A ∨ B) → (C ∧ D) ∧ (C ∧ D) → (A ∨ B)。
然后我用蕴含消除逻辑规则消除了→。我现在有
¬(A ∨ B) ∨ (C ∧ D) ∧ ¬(C ∧ D) ∨ (A ∨ B)。
我几乎被困在这里。我的教授说我应该使用分配规则来减少句子。我似乎找不到任何符合分配规则要求的东西。因此,在执行一些我不知道的逻辑规则之前,我似乎无法使用分配规则。
我在这里想念什么?Stack Overflow 可以帮助我恢复到 CNF 的转换吗?
boolean-logic - 使用布尔代数进行简化
最简单的形式是A'B'C' + A'B'C + A'BC' + AB'C'
什么?我已经尝试使用 K-map 和布尔代数规则来做到这一点,但他们给了我不同的答案!
boolean-logic - 具有最大项的布尔代数
我想简化以下表达式: F = (A+B+C)(A+B'+C)(A'+B+C)
我已经相应地简化了它。
F = (A+B+C)(A+B'+C)(A'+B+C)
F = (A+C)(A'+B+C)
F = AA' + AB + AC + A'C + BC + C
F = AB + C(A + A' + B + 1) = AB + C
但是,正确答案是 (A+C)(B+C)。在我的“当前”证明中我哪里出错了?我已经看到了解决方案,但我想知道为什么我目前的方法是错误的。
math - 简化这个布尔代数
是否可以简化这个布尔代数?我想消除使用两次 X 变量的冗余,但似乎看不到方法。
(X AND Y) OR NOT(X AND Z)
提前致谢!
java - 带有逻辑运算符的表达式 - 它相当于什么?
我有这个逻辑运算符表达式:
你如何简化它并找到等价物?
automata - 为什么我们不能将寄存器自动机简化为符号自动机?
在考虑自动机时,它们通常被认为是有限字母表。以下是两种类型的自动机,它们可以处理无限字母表上的单词(为清楚起见,包括定义)。
分别附加在单词开头和结尾的符号 [ 和 ] 是分隔符,不在字母表中。也就是说,自动机处理形式为w = [ v ] 的单词,其中v是字母表的一个元素。
字母表上的k 寄存器自动机A 是一个 5 元组 (Q, q_0, F, t_0, P),其中:
Q 是一组有限状态;
Q 中的 q_0 是初始(或开始)状态;
F(Q 的子集)是最终(或接受)状态的集合;
t_0 : {0,1,...,k}--> 字母联合 {[,]} 是初始寄存器分配;和,
P 是形式为 (i, q)-->(q', d) 或 q-->(q', i, d) 的有限转换集,其中 i 在 {0,1,...,k }, q, q' 在 Q 和 d 在 {Stay, Left, Right}。
符号有限自动机 (SFA) M 是一个 5 元组 ( A , Q, q_0, F, d),其中:
- A 是一个有效的布尔代数(字母表);
- Q 是一组有限状态;
- Q 中的 q_0 是初始(或开始)状态;
- F(Q 的子集)是最终(或接受)状态的集合;和,
- d(Q x Y_A x Q 的子集)是有限的转换集。
研究表明,对于寄存器自动机,等价是不可判定的,但在符号自动机中,等价是可判定的。我的问题是为什么?这两种自动机类型的工作结果相似,那么为什么我们不能将一种归约到另一种呢?
有人告诉我这是一个非常简单的问题,但我似乎无法在任何地方找到答案,所以感谢您的帮助!:)
我目前的想法是,SFA 要求他们的字母表是有效的布尔代数,而 RA 可以处理任何事情,因此他们的字母表不必遵循布尔代数的规则。我不知道如何正确地将这个想法转化为任何有用的东西。
math - 布尔代数帮助:对偶
我一直把这个问题弄错,我不知道为什么
我把这个作为答案:
我不明白为什么这是错误的
verilog - Verilog - || 之间的混淆 和 + 运算符
在布尔代数中,项的加法对应于 OR 门,而乘法对应于 AND 门。
假设我想要一个恒温器的鼓风机,其工作方式如下:
如果加热器或空调打开,风扇应该打开。或者,如果用户请求打开风扇(通过打开输入fan_on),即使加热器或空调关闭,风扇也应该打开。
基于这些要求,我将 Verilog 代码中的逻辑语句表述为:
然而,在模拟时,这会产生一个不正确的解决方案。但是,这有效:
一样
我的问题:
我对 + 运算符有什么误解?此外,我对后两种确实有效的解决方案感到困惑——为什么它们都有效,最后一个我只使用逻辑 OR 运算符的方式是一种更正确(或首选)的方式来做我想做的事情?
编辑#1:这是我声明输入和输出的整个模块