学習環境
- Surface 3 (4G LTE)、Surface 3 タイプ カバー、Surface ペン(端末)
- Windows 10 Pro (OS)
- 数式入力ソフト(TeX, MathML): MathType
- MathML対応ブラウザ: Firefox、Safari
- MathML非対応ブラウザ(Internet Explorer, Google Chrome...)用JavaScript Library: MathJax
集合・位相入門(松坂 和夫(著)、岩波書店)の第1章(集合と写像)、2(集合の間の演算)、問題8.を取り組んでみる。
問題8.
コード(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 コメント:
コメントを投稿