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

Javascript 证明一个条件表达式是否等于另一个条件表达式,javascript,logic,conditional,Javascript,Logic,Conditional,你如何证明下面的两个表达式是相同的 (A && C) || (B && C) (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

你如何证明下面的两个表达式是相同的

(A && C) || (B && C)
(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
证明≡ (A | | B)和&C是一个简单的方法

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

常量置换=[
[假,假,假],
[假,假,真],
[假,真,假],
[假,真,真],
[真,假,假],
[对,错,对],
[对,对,错],
[真的,真的,真的],
];
置换。forEach(置换=>{
常数[A,B,C]=置换;
console.log(((A&C)| |(B&C))==((A&C)&C));

});循环遍历
A
B
C
的所有值组合,并测试它们是否得到不同的结果。听起来像是家庭作业。对于
n
变量,蛮力方法将采用
2^n
迭代。聪明的方法是处理&&like*和| | like+,然后简化。如果通过交换性、结合性或分配性,你能使它们相等,那么它们是相等的equal@JamesMcDowell我问这个问题(不重要)的原因是因为我想让我的if条件语句更短,更容易阅读。A、B和C都是非常非常长的简化版本variables@JamesMcDowell是的,我假设
&&
|
*
+
的分配属性一样工作。我只是想确认它确实是这样工作的。我想这更像是一个数学问题,对于这种情况来说是一种编程方法,但在
排列中有许多重复项!我们有3个变量,所以排列的数量应该是2^3=8。
(A || B) && C