2016年10月4日火曜日

学習環境

集合・位相入門(松坂 和夫(著)、岩波書店)の第1章(集合と写像)、2(集合の間の演算)、問題8.を取り組んでみる。

問題8.


  1. ( A ϕ c )( A c ϕ )=Aϕ=A

  2. ( A X c )( A c X )=ϕ A c

  3. ( A A c )( A c A )=ϕϕ=ϕ

  4. ( A ( A c ) c )( A c A c )=A A c =X

コード(Emacs)

python 3.5

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

from matplotlib_venn import venn2
import matplotlib.pyplot as plt
import sympy

x = sympy.FiniteSet(*range(10))
a = sympy.FiniteSet(*range(0, 10, 2))
phi = sympy.FiniteSet()
expr = [
    (a.symmetric_difference(phi), a),
    (a.symmetric_difference(x), x - a),
    (a.symmetric_difference(a), phi),
    (a.symmetric_difference(x - a), x)
]
for s in [x, a, phi]:
    sympy.pretty_print(s)

for i, (left, right) in enumerate(expr):
    print('{0}: {1}'.format(i, left == right))

plt.figure(figsize=(6, 6))
venn2(subsets=(x, a), set_labels=('X', 'A'))
plt.savefig('sample8.svg')
plt.show()

入出力結果(Terminal, IPython)

$ ./sample8.py
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
{0, 2, 4, 6, 8}
∅
0: True
1: True
2: True
3: True
$

0 コメント:

コメントを投稿