現在Pythonにて以下のような集合の計算に関する処理を実装しようとしております。  
もし、参考になるような実装方法やウェブサイト等ございましたら、ご教示頂きたく存じます。

```

    ("B" or "D") and ("A" or "B" or "C" or "D") and ("A" or "B" or "C")
    
    = ("B" or "D") and ("A" or "B" or "C")
    
    = "A" and "D" or "B" or "C" and "D"
    
```

どうぞよろしくお願いいたします。
CC BY-SA 4.0
2018-06-09T06:15:42.487
44639
2018-06-09T06:38:10.030
28758
question
python
Pythonによる集合の計算方法について
sympyを使うのではどうでしょう

```

    >>> import sympy
    >>> from sympy.logic.boolalg import to_cnf, to_dnf
    >>> A, B, C, D = sympy.symbols('A,B,C,D')
    >>> expr = (B | D) & (A | B | C | D) & (A | B | C)
    >>> to_cnf(expr, simplify=True)
    And(Or(A, B, C), Or(B, D))
    >>> to_dnf(expr, simplify=True)
    Or(And(A, D), And(C, D), B)
    
```

詳しい使い方は公式ドキュメントが参考になります <http://docs.sympy.org/latest/modules/logic.html>
CC BY-SA 4.0
2018-06-09T06:38:10.030
44640
2018-06-09T06:38:10.030
806
44639
answer