Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Logic 两个布尔表达式的等式_Logic_Boolean Logic_Boolean Expression_Boolean Operations_Boolean Algebra - Fatal编程技术网

Logic 两个布尔表达式的等式

Logic 两个布尔表达式的等式,logic,boolean-logic,boolean-expression,boolean-operations,boolean-algebra,Logic,Boolean Logic,Boolean Expression,Boolean Operations,Boolean Algebra,我有两个布尔表达式: ¬aΛ¬b V ¬aΛ¬c V aΛ¬bΛ¬c #1 ¬aΛ¬b V ¬aΛ¬c V ¬bΛ¬c #2 我知道它们是一样的,因为它们的真值表是一样的。我的问题是,我怎样才能使它们在表达上平等 你可能会注意到它们之间的唯一区别是#1在其最后一个或最后一个学期中有一个额外的“a”。尝试去除额外“a”的各种分解方法都失败了。我不知道“表达式方面”的确切含义,但如果你根据a是真是假来分解它们,就会很容易看到 如果a为真(前两项在Eq1和Eq2中均为假): Eq1=>~b&~c

我有两个布尔表达式:

¬aΛ¬b V ¬aΛ¬c V aΛ¬bΛ¬c #1

¬aΛ¬b V ¬aΛ¬c V ¬bΛ¬c #2
我知道它们是一样的,因为它们的真值表是一样的。我的问题是,我怎样才能使它们在表达上平等


你可能会注意到它们之间的唯一区别是#1在其最后一个或最后一个学期中有一个额外的“a”。尝试去除额外“a”的各种分解方法都失败了。

我不知道“表达式方面”的确切含义,但如果你根据a是真是假来分解它们,就会很容易看到

如果a为真(前两项在Eq1和Eq2中均为假):
Eq1=>
~b&~c

Eq2=>
~b&~c

如果a为假:
Eq1=>
~b| ~c

Eq2=>
~b | ~c(~b&~c)
==Eq1

编辑: 您可以使用布尔标识更正式地生成相同的参数:

(~a&~b&~a&~c&~b&~c)==(~a&~b)|(~a&~c)|(~b&~c))&(a&~a)

因为
(a | ~a)==1
x&1=x

然后使用
&
|
上的分布:

=(((~a&~b)|(~a&~c)|(~b&~c))&a)|((~a&~b)|(~a&~c)|(~b&~c))&~a)

现在,在主
|
的两侧都有了每个“案例”作为附加事实。再次应用分发将把这个事实推到内部案例中,并最终做出与我上面所做的相同的取消。只看左侧的第一个分布:

((~a & ~b) | x) & a) == (a & ~a & b) | (a & x) == 0 | (a & x) == a & x

其中x是其他两个或多个表达式。遵循此策略将给出与上述相同的答案。如果你被卡住了,我可以带你走得更远,但你应该可以从这里开始。

一般来说,你需要将表达式转换为。要做到这一点,你需要对基本连词进行析取:对于真值表中的每一个1,写出所有变量或其倒数的对应连词,然后对所有这些连词进行析取。合取范式也存在,但使用较少

对于许多变量的表达式,析取范式变得相当大。在这种情况下,您可能希望使用最小化算法(例如),但这非常复杂,计算成本也很高(最小化的问题非常复杂,而且这些算法的运行时通常比只计算真值表还要糟糕)

如果您只需要一个通用表示来比较相同变量的任何布尔表达式,您还可以比较这些表达式的真值表:

¬aΛ¬b V ¬aΛ¬c V aΛ¬bΛ¬c #1

¬aΛ¬b V ¬aΛ¬c V ¬bΛ¬c #2
  • 以字典顺序作为变量的每个可能组合的表达式值字符串(零或一)
  • 或者作为真值表中表达式为真的行的排序列表。行按变量的字典顺序编号

要比较它们,您首先需要通过删除其中的常用术语来简化它们。例如,您可以消除a∧b V∧a∧c,只需要a∧b∧c和b∧c进行比较。这减少了很多时间。我对我之前提出的论点添加了一个更正式的解释,看看你怎么想。你是正确的,你可以把它视为a的条件,但我所说的“表达智慧”是指我正在寻求应用一系列的身份/转换(例如,Demorgan、distributive、Communicative等)将#1转化为#2