问题标签 [truthtable]

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 投票
0 回答
697 浏览

java - 用Java在布尔逻辑中构造真值表标题

我正在做一个基于中缀布尔逻辑表达式构建真值表的小项目。例子:

我能够将其转换为后缀:

因此能够将表达式构造成二叉树(可以将树转换回中缀,获取后缀或前缀):

ABC∨∧的语法树:

ABC∨∧的语法树

问题

我的问题是在构建真值表时,如何找出完成真值表所需的其余列标题?

目前我能够生成符号的所有排列:

基本上为了获得这些标题,我只是Set<Character>根据输入创建一个不同的字母字符。

然而,这并不是一个完整的真值表A ∧ (B ∨ C)。对于完整的真值表,我需要添加列(B ∨ C)A ∧ (B ∨ C) 因此完整的真值表将如下所示:

那么,我将如何以编程方式生成所需的附加标题(即带有逻辑连接词的标题),使我能够生成其语义含义?

一些树遍历算法会这样做吗?还是只使用输入的中缀/后缀版本?

一些 Java 代码会有所帮助,但一种方法/算法就足够了 :)

谢谢!

0 投票
2 回答
121 浏览

c++ - 我的代码中的错误 - 布尔真值表

我目前正在开发一个打印 5 个变量真值表的程序。我正在使用二维数组。我的代码当前生成了表,但说它已损坏,并且“变量“表”周围的堆栈已损坏。有帮助吗?

这是作业,所以我想理解它,而不仅仅是一个答案。

0 投票
1 回答
756 浏览

boolean-logic - 将布尔真值表转换为 SOP 和卡诺图

在此处输入图像描述

嗨,我是大三学生,我的计算机架构课有问题。有人愿意帮助并告诉我我是否正确吗?

问题1。将真值表转换为布尔方程。

问题2。求最小 SOP(产品总和)

问题3。使用 K-map(卡诺图)进行简化。

0 投票
1 回答
41 浏览

boolean - 表示布尔方程的真值表

请参阅我对此感到困惑的问题的附图。请注意我不是在寻找答案,但也许是我如何解决这个问题的方向感!

我不知道如何解决这个问题,想知道如何解决。

问题的图像

0 投票
1 回答
655 浏览

boolean-expression - 卡诺图不关心案例

我目前正在使用以下真值表

在此处输入图像描述

我需要从这张表中得到卡诺图,模拟给了我这个

在此处输入图像描述

但是,当我手动执行此操作时,我会得到此结果(因为 X 可以是您需要的任何东西)

在此处输入图像描述

我真的不知道我错过了什么......我知道它一定与 X 有关,但我研究的内容表明你并不需要对所有 X 进行分组以获得结果

我目前正在做的是以这种方式获得 1 组

第一组

0 0 0 0

0 0 1 0

这给了我一个'b'd'

第二组

0 1 1 1

这给了我一个'bcd

第三组

1 1 0 0

1 0 0 0

这给了我 ac'd'

所以是的,我没有得到相同的模拟结果,我不知道为什么......我确定它与无关字段(X)有关

0 投票
1 回答
44 浏览

boolean - 使用布尔电路实现功能

我需要在布尔电路中实现一些多变量函数;我们有什么工具可以自动将一些算术转换为布尔电路?

例如,我想要实现的部分公式是max(a,b)获取 2 个数字(目前为 16 位)并返回最大数字的索引(即 0 或 1)的运算符。

我知道我可以构建真值表并将其自动转换为布尔电路,但这需要一个非常大的电路(有 2^32 个条目)。

0 投票
2 回答
630 浏览

java - 真值表 - 协助

我有一个作业问题。问题基本上如下: 有 2 个整数变量 A 和 B。这两个整数都包含数据。使用真值表,如果有的话,以下 IF 语句测试等效于:

请问我将如何解决这个问题。任何建议将不胜感激。我认为我必须创建一个包含三列的表 - 一列称为 A,另一列 B,第三列称为 RESULT(是或否)。

声明: if (!(A == 60 && B == 40)) - 我不确定如何阅读该部分if (!。换句话说,这部分A == 60 && B == 40本质上是在告诉我 A 必须等于 60,同时 B 必须等于 40。接下来我很困惑。任何帮助/建议将不胜感激。

谢谢克里斯

0 投票
1 回答
140 浏览

c++ - 将truthTable结果转换为布尔语句

我正在尝试将真值表的结果转换回布尔语句。对于不熟悉的人,我将详细写它。

我有一个格式如下的字符串向量。向量内的所有字符串成员都具有相等的长度。成员仅由-or0或组成1。例如向量 v 包含 3 个成员,每个成员的长度为 5。

字符串的每个字符代表另一个向量“A”成员以及一个布尔运算。例如,

第一个--1-0(A[2] && !A[4])

我想将上面的向量v转换为

(A[2] && !A[4]) || (A[1] && A[3] ) || (!A[0] && A[1] && A[3])

我想要做的是有一个带有向量vA作为输入的函数,并且返回高于布尔语句。我相信您已经注意到1is true, 0isNot true-is don't care 状态。

编辑:我不打算解决一个truthTable 或Kmap。我已经有了结果。我的结果采用“v”向量的格式。我想使用布尔语句在 V 和 A 之间创建链接。

任何建议表示赞赏。

0 投票
2 回答
402 浏览

common-lisp - CLISP程序判断真值表是否不一致、有效或无效

我只是在捕获生成的真值表上的条件的循环上有一个小问题。所以你输入一个逻辑表达式然后它把它变成一个真值表,它还解释它是有效的、无效的还是不一致的。到目前为止,这是解释它的程序的一部分,但它只捕获无效或有效......你能指导我吗?谢谢

*edit// 所以程序是这样运行的:

*******欢迎!********

键入 (LogicStart) 开始或 (exit) 随时退出。

;; 加载文件 MyLogic.lisp

T [2]> (LogicStart) 输入逻辑表达式或公式:“(p^(~p))”

p (~p) (p^(~p))
T 无 无

无 无

公式无效

所以输入只是一个逻辑表达式,那么输出就是那个表达式的真值表......并且也可以解释它,但是我的代码只有两种解释:无效或有效(重言式),因为上面的例子应该是不一致/无法满足(因为对公式/表达式的所有解释都是错误的)

结束编辑

编辑两个:///

这是 LogicStart 函数:

setAtoms 功能:

watchTable 和列函数

//edit 3 所以对于 (OR A (NOT A)),@jkiiski 的代码中的表格缺少“not A”

另一个参考示例:虽然 P 隐含 Q,但此代码接受的隐含为:>

所以它在 (p>q)^r 中显示 p, q, r, (p>q) 最后在真值表上显示 (p>q)^r..

编辑四//

0 投票
1 回答
1452 浏览

excel - 在 Excel 公式中创建结果真值表

基于两个输入条件,我希望能够输出 4 个输出值中的 1 个。例如,在检查两个表之间的匹配时,我希望能够访问如下函数:

做类似的事情:

到目前为止,我提出的两个选项是:

或者:

由于条件 2 的重复,选项 1 维护起来很麻烦,而选项 2 很复杂,以便将来的维护者理解。我目前倾向于选项 2,但有人知道更好的选择吗?