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


関連記事

Last updated♪2009/11/16