介绍

德摩根定律(De Morgan's laws,又称笛摩根定理、第摩根定律、对偶律等)是关于命题逻辑规律的一对法则,由英国数学家奥古斯塔斯·德·摩根(Augustus De Morgan)于19世纪正式提出。

在高中数学我们都学过了逻辑用语和集合,或多或少听说过德摩根定律

在逻辑用语中,德摩根定律描述了否定运算(¬,即“非”)与合取(∧,即“与”)和析取(∨,即“或”)之间的等价关系。设 P 和 Q 为两个命题,则德摩根定律可表述为:

  • 第一定律:¬(P∧Q) = (¬P)∨(¬Q)

  • 第二定律:¬(P∨Q) = (¬P)∧(¬Q)

在数学集合中,德摩根定律说明了补集运算(∁)与交集(∩)和并集(∪)之间的关系。设全集为U,集合A和集合B为U的子集,则:

  • 第一定律:u(A∩B) = (∁uA) ∪ (∁uB)

  • 第二定律:u(A∪B) = (∁uA) ∩ (∁uB)

这个可简记为“交的补等于补的并”和“交的补等于补的交”。

应用

在逻辑表达式中:

public class Main {
    public static void main(String[] args) {
        boolean p = true;
        boolean q = false;
        boolean r1 = !(p && q); // 等价于 !p || !q
        boolean r2 = !(p || q); // 等价于 !p && !q
        System.out.println(r1);
        System.out.println(r2);
    }
}
  • !(p && q)等价于!p || !q

  • !(p || q)等价于!p && !q

使用德摩根定律优化逻辑表达式可以提高代码的可读性和效率。