1. wotsushi

    No comment

    wotsushi
Changes in body
Source | HTML | Preview
@@ -18,34 +18,34 @@
`all`, `any` は組み込み関数で、結構便利です。
## 集合論
数式における $A$, $B$ は集合を、 $P$ は述語を、
-Python式における $A$, $B$ は `set` 型の値、 $P$ は `bool` 型の値を返す関数とします。
+Python式における $A$, $B$ は `frozenset` 型の値、 $P$ は `bool` 型の値を返す関数とします。
**注意**
* Markdownのテーブル記法と衝突するため、 `|` を `|` で表現しています。
* `product`, `chain.from_iterable`, `combinations` は [itertools](https://docs.python.jp/3/library/itertools.html) で定義されている関数です。
|意味|数式|Python式|
|---|---|---|
-|内包表記| $\\{a \mid a \in A, P(a) \\}$ | `{a for a in A if P(a)}` |
+|内包表記| $\\{a \mid a \in A, P(a) \\}$ | `frozenset(a for a in A if P(a))` |
|元である| $a \in A$ | `a in A` |
|元でない| $a \notin A$ | `a not in A` |
|部分集合| $A \subseteq B$ | `A <= B` |
|真部分集合| $A \subset B$ | `A < B` |
|積集合| $A \cap B$ | `A & B` |
|和集合| $A \cup B$ | `A | B` |
|差集合| $A \setminus B$ | `A - B` |
-|べき集合| $2^{A}$ | `set(chain.from_iterable(combinations(A, k) for k in range(len(A) + 1)))` |
-|直積集合| $A \times B$ | `set(product(A, B))` |
+|べき集合| $2^{A}$ | `frozenset(frozenset(s for s in S if s) for S in product(*((None, a) for a in A)))` |
+|直積集合| $A \times B$ | `frozenset(product(A, B))` |
|最大値| $\max{A}$ | `max(A)`|
|最小値| $\min{A}$ | `min(A)`|
|濃度| $ \mid A \mid$ | `len(A)` |
べき集合を扱うことはほとんどないと思いますが、Python式で表現しようとするとしんどいですね。
-`product` は `set` に限らず `iterable` なオブジェクトにも適用可能なので、結構使えます。
+`product` は `frozenset` に限らず `iterable` なオブジェクトにも適用可能なので、結構使えます。
## 定数
`pi`, `e` は [math](https://docs.python.jp/3/library/math.html) で定義されている値です。
|意味|数式|Python式|