标签: truthtable

使用真值表过滤

想象一个带有布尔标志的Person类,该布尔标志指示该人是否可以使用 - 默认情况下设置为false.

public class Person{
    boolean employable = false;
    ...
}
Run Code Online (Sandbox Code Playgroud)

现在假设有一些外部布尔方法作用于Person对象.例如,考虑实用程序类中的静态布尔方法.

public class PersonUtil{
    public static boolean ofWorkingAge(Person p){
        if(p.getAge() > 16) return true;
        return false;
    }
    ...
}
Run Code Online (Sandbox Code Playgroud)

布尔静态方法本质上类似于布尔值函数,即谓词.

我们可以用谓词构造一个2 ^(#谓词)-by-#谓词真值表.例如,给定三个谓词:ofWorkingAge,ofGoodCharacter,isQualified我们可以构造以下8×3真值表:

T T T
T T F
T F T
T F F
F T T
F T F
F F T
F F F
Run Code Online (Sandbox Code Playgroud)

我们现在想雇用具有理想品质的人.让+表示我们希望考虑某人可就业(即将他们的就业能力标志设为)和-相反.

T T T | + …
Run Code Online (Sandbox Code Playgroud)

java design-patterns functional-programming truthtable java-8

6
推荐指数
1
解决办法
649
查看次数

在excel中生成真值表

我需要制作一个公式,为您提供可变数量的列的真值表

例子

样本4位真值表

excel excel-formula truthtable

6
推荐指数
2
解决办法
1万
查看次数

Prolog一阶逻辑 - 打印真值表

我必须编写打印表达式真值表的程序.所以,我写了以下函数:

bool(true).
bool(fail).

tableBody(A,B,E) :-
    bool(A),
    bool(B) ,
    write(A) ,
    write('    '),
    write(B),
    write('    '),
    write(E),nl, fail.
Run Code Online (Sandbox Code Playgroud)

我的问题是E(包含A和B的表达式)没有被评估,而是按原样打印.例如:

296 ?- table(A,B,and(A,B)).
A    B    expr(A,B)
true    true    and(true, true)
true    fail    and(true, fail)
fail    true    and(fail, true)
fail    fail    and(fail, fail)
false.
Run Code Online (Sandbox Code Playgroud)

我有兴趣编写and(true, true)(" and(X,Y)"是我之前定义的仿函数)的评估值,而不是当前显示的值.我想过编写一个eval仿函数,但它不会产生同样的效果吗?我怎么解决这个问题?

我正在使用SWI-Prolog 5.8.谢谢.

prolog boolean-expression truthtable

5
推荐指数
1
解决办法
4954
查看次数

数字逻辑-卡诺图

最初的问题是这样开始的。有6个州。在每个状态,当 w=1 时移动到下一个状态,当 w=0 时则保持当前状态。在每个状态下,使用标准 7 LED 显示屏 (BCD) 显示一个数字。这些数字是 8 -> 1 -> 9 -> 4 -> 2 -> 2。

这是我对这个问题的尝试。我从一个状态表开始:从左到右 y2,y1,y0

    w=0  w=1  a  b  c  d  e  f  g
000|000  001  1  1  1  1  1  1  1
001|001  010  0  1  1  0  0  0  0
010|010  011  1  1  1  1  0  1  1
011|011  100  0  1  1  0  0  1  1
100|100  101  1  1  0  1  1  0  1
101|101  000  1 …
Run Code Online (Sandbox Code Playgroud)

circuit digital-logic truthtable karnaugh-map

5
推荐指数
1
解决办法
806
查看次数

测试逻辑表达式的工具

谁能推荐可用于评估逻辑表达式的软件(最好是 Mac 版)或基于 Web 的工具?

例如,我希望能够快速测试两个表达式是否如下:

$a = 'foo';
$b = 'bar';
$c = 'foo';

( !(($a == $c) && ($b == $c)) )

// and

( ($a != $c) || ($b != c$) )
Run Code Online (Sandbox Code Playgroud)

是否可互换。

而且,对于如何构建此类表达式,是否存在普遍认可的最佳实践?例如,尝试尽量减少否定、元素顺序或类似内容的使用?

有时我发现自己在这些事情上有点挣扎:)

evaluation logic boolean-logic expression truthtable

4
推荐指数
1
解决办法
1万
查看次数

寻找项目建议.解析逻辑表达式

我正在寻找关于我学校项目的一些建议.我应该创建一个程序,它采用逻辑表达式并为其输出真值表.实际上为我创建真值表并不困难,我已经用Java编写了这些方法.我想知道java中是否有任何类可以用来解析表达式并将其放入堆栈中.如果不是,我正在寻找解析表达式的帮助.每当我尝试思考它时,它就是括号.此外,如果在任何其他语言中这样做会更容易,我会愿意这样做.Perl可能是我的下一个最好的语言.

一些例子(P && Q) - > R.

(P || Q || R)&&((P - > R) - > Q)

java perl logic parsing truthtable

4
推荐指数
1
解决办法
4394
查看次数

生成所有可能的真/假组合

我想创建一个包含三个变量的所有可能组合的数组,这些变量可以是真或假(即8种可能的组合).

我试图在此图像的左上角创建立方体

在此输入图像描述

所以输出应该是这样的

points = [
  // first square
  {
    id: '000',
    truths: [false, false, false]
    position: [0, 0]
  },
  {
    id: '100',
    truths: [true, false, false]
    position: [5, 0]
  },
  {
    id: '010',
    truths: [false, true, false]
    position: [0, 5]
  },
  {
    id: '110',
    truths: [true, true, false]
    position: [5, 5]
  },
  // second square
  {
    id: '001',
    truths: [false, false, true]
    position: [2.5, 2.5]
  },
  {
    id: '101',
    truths: [true, false, true]
    position: [7.5, 2.5]
  },
  {
    id: …
Run Code Online (Sandbox Code Playgroud)

javascript arrays combinations boolean truthtable

4
推荐指数
1
解决办法
2131
查看次数

在没有条件语句的情况下访问第n位

所以我有一点顺序:

1010

1是MSB.

如果奇数位为0,我的函数需要返回0的整数,如果是1则返回1.

我不能使用任何for循环或任何性质的东西来看我是否需要返回0或1.有没有人有任何建议如何去做.

我正在考虑使用not操作,但我可以弄清楚如何使用它.

到目前为止,我正在使用1010 ... 10的序列,然后将它连接起来.这样做会让我得到1010.现在我需要知道我是否返回1或0.

c bitwise-operators truthtable

3
推荐指数
1
解决办法
5297
查看次数

从真值表创建简化有序二进制决策图(ROBDD)

是否有一个软件包(最好是应用程序,而不是库)从给定的真值表(以某种文本格式)创建精简二阶决策图(ROBDD)?

logic solver truthtable binary-decision-diagram

3
推荐指数
1
解决办法
7332
查看次数

用最少的迭代在Java中解决逻辑表达式

我正在努力解决Java中包含AND,ORNOT运算符的逻辑表达式.

如果输入是TRUE包含的变量的任何布尔值,则程序必须输出.我已成功完成,但效率不高.

我目前的解决方案如下:

为表达式中的每个变量创建一个真值表,并逐行评估.

(p ? ¬q) ? (r ? s) ? (¬p ? u)
Run Code Online (Sandbox Code Playgroud)

在上面的例子中,我将用一个变量真值表来评估整个表达式p q r s.

现在,我正在考虑实现一个类似的替代解决方案:考虑上面的例子.

我们可以注意到,即使只是解决了这个p ? ¬q部分,所有的表达都会出现TRUE.这为我们节省了3个额外变量的麻烦.

现在,我的问题是这个.如何在JAVA中编程?我怎么才能知道输入是否有像上面那样的模式?或者它只是一个表达式,我必须评估整个真值表?就像下面那个

(p ? ¬q) ? (r ? (s ? (¬p ? u)))
Run Code Online (Sandbox Code Playgroud)

java performance truthtable logical-operators coding-efficiency

3
推荐指数
1
解决办法
45
查看次数