Python.use(better, VDM++) #power -- finite power set
‖記事一覧‖ Python.use(better, VDM++)
power -- finite power set
《著》小粒ちゃん+∞《監修》小泉ひよ子とタマゴ倶楽部
第0版♪2000/04/03 ● 第1版♪2003/05/23 ● 第2版♪2006/10/01 ● 第3版♪2009/10/07
VDM++ に準拠する操作を実現することで、Python との相互理解を深めます。
※ Python1.5 で作成した例題を、Python3.1 で再構成しました。
事例:モジュールを起動する
■ 全項目を確認する
全ステップの「項目」を確認するには、関数 do を利用します。
$ python VDM_set.py >>> do() 0: step00 -- def VDM_set(): ... >>>
>>> help(power)
...
power(s1)
power s1
; set of A -> set of set of A
;
; Finite power set
; yields the power set of s1, i.e. the set of all subsets of
; s1.
■ 各項目を実行する
各ステップの「動作」を確認するには、関数 do に実引数を指定します。
>>> do(@) >>> # -------------------------------------------------- finite_power_set >>> s = VDM_set("AB") >>> power(s) {{'A', 'B'}, {'A'}, {'B'}, {}} >>> s = VDM_set("ABC") >>> power(s) {{'A', 'B', 'C'}, {'A', 'B'}, {'A', 'C'}, {'A'}, {'B', 'C'}, {'B'}, {'C'}, {}}
冪集合が得られます。
事例:コードの解説
VDM/set
Operator | Name | Type |
---|---|---|
e in set s1 | Membership | A ∗ set of A → bool |
e not in set s1 | Not membership | A ∗ set of A → bool |
s1 union s2 | Union | set of A ∗ set of A → set of A |
s1 inter s2 | Intersection | set of A ∗ set of A → set of A |
s1 \ s2 | Difference | set of A ∗ set of A → set of A |
s1 subset s2 | Subset | set of A ∗ set of A → bool |
s1 psubset s2 | Proper subset | set of A ∗ set of A → bool |
s1 = s2 | Equality | set of A ∗ set of A → bool |
s1 <> s2 | Inequality | set of A ∗ set of A → bool |
card s1 | Cardinality | set of A → nat |
dunion ss | Distributed union | set of set of A → set of A |
dinter ss | Distributed intersection | set of set of A → set of A |
power s1 | Finite power set | set of A → set of set of A |
- Note that the types A, set of A and set of set of A are only meant to illustrate
》こちらに移動中です《
↑TOP