任何人都可以告诉我(正式),为什么
not A or (not A and B)
是
not A?
答案 0 :(得分:0)
!A || (!A && B) means :
if(A = true and B = true) => false (!A)
if(A = True and B = false) => false (!A)
if(A = false and B = True) => True (!A)
if(A = false and B = false) => True (!A)
在所有情况下你的表达都是!A 它被称为表达式输入的真值表。
如果你有大量的输入和逻辑操作,这种方法很难验证你的表达。
在这种情况下你可以做些什么:
证明!A = !A || (!A && B)
与证明A = !(!A || (!A && B))
!(!A || (!A && B)) = A && !(!A && B) = A && (A || !B) = A
答案 1 :(得分:0)
A or (A and B) == A
总是一个重言式(其中A可以用&#34代替;不是A"或任何其他布尔表达式,类似于B)。
你不需要像其他人那样考虑整个真值表,只考虑A本身的值(即仅两种情况)并应用布尔逻辑的规则来简化:
true or (true and B)
这是非常真实的(根据定义或 - true or X
总是true
)。false or (false and B) == (false and B) == false
(根据或(false or X == X
)和/或(false and X == false
)的定义。)根据您的个人品味,在集合理论中回忆起或与UNION相关可能更直观,并且"和"与INTERSECTION有关。在这种情况下,很明显。 UNION(A INTERSECTION B)等于A,因为(A INTERSECTION B)是A的严格子集。