我在我的程序中遇到了一个错误,我不得不区分标题中陈述的情况。 a,b,c是不同的实体,但a,b或c可以等于k。
我的意图,即表示为复合逻辑语句,是说如果a,b或c等于k(a == k或b == k或c == k),那么声明应该返回false。
错误的表达是:(a!= k || b!= k || c!= k) 我的更正是:!(a == k || b == k || c == k) 原因是前者说a,b,AND c需要等于k才能使该陈述成为假。
我只想验证我的更正。
答案 0 :(得分:2)
(a == k || b == k || c == k)
相当于!(a != k && b != k && c != k)
。这是 De-Morgan定律的应用。
正式证据并不容易,所以不会试图给它。 (但是,一旦你建立了一些数学公理,你可以做的第一个证据之一。)你可以通过使用反例证明你的陈述不相同:设置a != b
意味着(a != k || b != k || c != k)
是始终为true,但!(a == k || b == k || c == k)
可能为真。
答案 1 :(得分:0)
当然他们不等同。当你使用de-morgan时,第一个相当于不等式的结合。它们不同的示例:a=1, k=2, b=2, c=3
。