问题标签 [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.
java - 用Java在布尔逻辑中构造真值表标题
我正在做一个基于中缀布尔逻辑表达式构建真值表的小项目。例子:
我能够将其转换为后缀:
因此能够将表达式构造成二叉树(可以将树转换回中缀,获取后缀或前缀):
ABC∨∧的语法树:
问题
我的问题是在构建真值表时,如何找出完成真值表所需的其余列标题?
目前我能够生成符号的所有排列:
基本上为了获得这些标题,我只是Set<Character>
根据输入创建一个不同的字母字符。
然而,这并不是一个完整的真值表A ∧ (B ∨ C)
。对于完整的真值表,我需要添加列(B ∨ C)
,A ∧ (B ∨ C)
因此完整的真值表将如下所示:
那么,我将如何以编程方式生成所需的附加标题(即带有逻辑连接词的标题),使我能够生成其语义含义?
一些树遍历算法会这样做吗?还是只使用输入的中缀/后缀版本?
一些 Java 代码会有所帮助,但一种方法/算法就足够了 :)
谢谢!
c++ - 我的代码中的错误 - 布尔真值表
我目前正在开发一个打印 5 个变量真值表的程序。我正在使用二维数组。我的代码当前生成了表,但说它已损坏,并且“变量“表”周围的堆栈已损坏。有帮助吗?
这是作业,所以我想理解它,而不仅仅是一个答案。
boolean - 表示布尔方程的真值表
请参阅我对此感到困惑的问题的附图。请注意我不是在寻找答案,但也许是我如何解决这个问题的方向感!
我不知道如何解决这个问题,想知道如何解决。
boolean - 使用布尔电路实现功能
我需要在布尔电路中实现一些多变量函数;我们有什么工具可以自动将一些算术转换为布尔电路?
例如,我想要实现的部分公式是max(a,b)
获取 2 个数字(目前为 16 位)并返回最大数字的索引(即 0 或 1)的运算符。
我知道我可以构建真值表并将其自动转换为布尔电路,但这需要一个非常大的电路(有 2^32 个条目)。
java - 真值表 - 协助
我有一个作业问题。问题基本上如下: 有 2 个整数变量 A 和 B。这两个整数都包含数据。使用真值表,如果有的话,以下 IF 语句测试等效于:
请问我将如何解决这个问题。任何建议将不胜感激。我认为我必须创建一个包含三列的表 - 一列称为 A,另一列 B,第三列称为 RESULT(是或否)。
声明: if (!(A == 60 && B == 40))
- 我不确定如何阅读该部分if (!
。换句话说,这部分A == 60 && B == 40
本质上是在告诉我 A 必须等于 60,同时 B 必须等于 40。接下来我很困惑。任何帮助/建议将不胜感激。
谢谢克里斯
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])
我想要做的是有一个带有向量v
和A
作为输入的函数,并且返回高于布尔语句。我相信您已经注意到1
is true
, 0
isNot true
和-
is don't care 状态。
编辑:我不打算解决一个truthTable 或Kmap。我已经有了结果。我的结果采用“v”向量的格式。我想使用布尔语句在 V 和 A 之间创建链接。
任何建议表示赞赏。
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..
编辑四//
excel - 在 Excel 公式中创建结果真值表
基于两个输入条件,我希望能够输出 4 个输出值中的 1 个。例如,在检查两个表之间的匹配时,我希望能够访问如下函数:
做类似的事情:
到目前为止,我提出的两个选项是:
或者:
由于条件 2 的重复,选项 1 维护起来很麻烦,而选项 2 很复杂,以便将来的维护者理解。我目前倾向于选项 2,但有人知道更好的选择吗?