问题标签 [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.

0 投票
1 回答
61 浏览

python - 如何将嵌套函数代码转换为可读的布尔代数?

对于我正在编写的这个程序,我正在编写一个需要简化和读取/输出布尔表达式的程序。为此,我需要能够在以下代码之间进行转换:

AND(OR(a,b), NOT(OR(c,a)))

进入

(A+B).'(C+A)

反之亦然,所有运算符都作为AND(a,b),OR(a,b)和工作NOT(a),其中 a 和 b 是变量/参数(它们代表我程序中的实际函数)。

我不知道如何处理这个问题,所以如果你能提供任何指导我的东西,我将非常感激。

谢谢你。

0 投票
1 回答
150 浏览

python - 使用 Quine-McCluskey 算法后如何使用 XOR 进行简化?

对于我的程序,我需要简化布尔表达式,我可以使用 Quine-McCluskey 的算法来做到这一点,但是最终结果只包含 NOT、AND 和 OR,但没有 XOR,并且 XOR 的参与对我的程序至关重要 -如果从算法派生的结果包含一个可以转换为 XOR 的表达式,我将如何去做呢?

谢谢你。

0 投票
0 回答
58 浏览

boolean-algebra - 将以下表达式简化为 A'D' + A'B

= '''' + ''' + '' + ' + '' + ''' + 'D'

我已经完成了以下的 K-Map 并得到了 A'D' + A'B 但无法弄清楚如何显示 K-Map 派生的简化。

0 投票
2 回答
107 浏览

boolean-algebra - 如何使用布尔代数简化?

我的作业中有以下问题:

“使用布尔代数验证以下等式:

NOT((A AND NOT B) OR (NOT A AND B)) == ((A AND B) OR (NOT A AND NOT B))。"

我可以使用卡诺图和真值表来做到这一点,但我被困在使用布尔代数的正式程序上。

提前感谢您的帮助!

0 投票
2 回答
126 浏览

boolean-logic - 如何简化以下表达式

我正在尝试简化以下表达式:(!A && !B) || (!B && !C) || (C && !A). 它应该简化为两个术语:(!A and C) || (!B and !C)

我已经尝试应用几乎所有的法律,并尝试了不同的因式分解组合,看看是否会减少任何东西,但它不会导致所需的答案。

0 投票
0 回答
172 浏览

function - 当数据以位为单位时,求解具有相互依赖的变量和函数的方程

当涉及函数且数据以位为单位时,如何求解具有两个变量的 2 个方程?

等式1:

f +i + 常数数据 =reed solomon 函数(h+常数数据)

等式2:

h +i + 常数数据 = 里德所罗门函数(f + 常数数据)

其中 f,h,i 是位(布尔数组),常量数据也是位(布尔数组) 常量数据是已知的

左侧是 56 位右侧(函数内部)是 152 位

尝试了蛮力方法,但它需要永远并且不起作用。

我在网上找到的提示:必须使用高斯消除方法,但不确定这种方法

0 投票
1 回答
158 浏览

conditional-statements - 如何简化C中的逻辑运算

我有以下逻辑,需要简化以使其看起来更清晰和简洁:

为了解决上述问题,我应用了逻辑表达式来进一步简化这几行条件:

我不确定如何从这里进一步简化。谁能帮我?

更新: 为了进一步简化,我尝试将布尔代数应用于此表达式,但没有运气!我想出了这个:

whereA表示x1 < y1A1表示x1 == y2

0 投票
1 回答
69 浏览

r - 函数无法找到在该函数的本地环境中定义的公式对象

我正在尝试构建一个可以接受公式列表作为参数的函数。

我首先定义将作为参数输入到函数中的变量。前两个变量被命名为包含布尔信息的向量。

第三个参数是公式对象的列表。公式是一个“语言”类对象,除非使用f_eval()函数明确告知这样做,否则它不会被评估。

好的,是时候构建函数了。第一步是在函数中创建局部变量。这些局部变量将以 named_vector 参数的名称命名。

然后我初始化一个矩阵。之后,我打印出局部变量来测试它们是否成功。这只是一条测试线,不会出现在函数的最终版本中。

最后,是时候使用逻辑论证了!这里的目标是让函数使用逻辑参数中提供的方程,通过使用前一行中可用的值来“更新”矩阵的下一行。

第一行按顺序计算方程,然后将这些值分配给矩阵中的下一行。这是发生错误的地方。

第二行现在使用矩阵最近更新的行中的值重新分配变量的值。

好的,当我使用开始时设置的参数运行函数时:

我收到以下错误:

我无法为我的生活找出原因。为什么函数看不到我之前定义的局部变量?这些变量需要用于评估公式。

PS我相信可能有更好/更优雅的方式来使用类似的参数格式编写这个函数,我很想知道它们。但是出于学习的目的,我真的很想知道我编写这个函数的方法是否可行。

PPS 当我单独运行函数的内部时(在全局环境中也称为),我的方法效果很好。结果如下所示:在此处输入图像描述

0 投票
1 回答
60 浏览

boolean-algebra - 如何简化长表达式

~ 表示非,+ 表示或

我想用布尔定律简化以下内容-

~A~B~C~D + ~A~B~CD + ~A~BCD + ~AB~CD + ~ABC~D +~ABCD + A~B~CD + A~BC~D + AB~CD + A B C D

所以我把它简化到 ~A~B~C + ~ABC + A~BC~D + DB~C + A~CD + ABD + ~A~BCD

但是我找不到将其简化为从 K-map 方法中找到的形式的方法,即:

~A~B~C + ~ABC + A~BC~D + ~AD + BD + ~CD

我看到前三个变量相等(~A~B~C + ~ABC + A~BC~D),但我不知道如何简化

DB~C + A~CD + ABD + ~A~BCD

进入

~AD + ~BD + ~CD

0 投票
0 回答
44 浏览

boolean - 如何使用 NAND 门表达 (A*B) + (~A*~B)?

目前遇到一个问题,需要仅使用 NAND 门重写布尔表达式 (A B) + (~A ~B)。有任何想法吗?