证明一个条件表达式是否等于另一个条件表达式

时间:2019-01-18 21:05:06

标签: javascript logic conditional

如何证明以下两个表达式相同?

(A && C) || (B && C)
(A || B) && C

2 个答案:

答案 0 :(得分:3)

证明(A && C) || (B && C) ≡ (A || B) && C是一个简单的证明。

让我们从等式的右边开始,然后到左边。

通过逻辑分布定律,可以证明对于所有命题P,Q和R,P && (Q || R) ≡ (P && Q) || (P && R)
通过逻辑可换律,可以证明对于所有命题P和Q,P && Q ≡ Q && P

使用它,我们可以证明上面的陈述是等效的。
(A || B) && C ≡ C && (A || B)(通过交换律)
C && (A || B) ≡ (C && A) || (C && B)(通过分配法)
(C && A) || (C && B) ≡ (A && C) || (B && C)(通过交换律)
因此,我们有(A && C) || (B && C) ≡ (A || B) && C

答案 1 :(得分:0)

(A && C) || (B && C) ≡ (A || B) && C是一个简单的证据。

让我们从所有可能排列的列表开始,然后进行测试。

const permutations = [
  [false, false, false],
  [false, false, true],
  [false, true, false],
  [false, true, true],
  [true, false, false],
  [true, false, true],
  [true, true, false],
  [true, true, true],
];

permutations.forEach(permutation => {
  const [A, B, C] = permutation;
  console.log(((A && C) || (B && C)) === ((A || B) && C));
});