Skip to main content

排列组的 Python 实现

项目描述

烫发组包

介绍了置换组的 Python 实现。引入了两个类:Perm用于排列, Group用于排列组(所有版本)。

perms模块中的Perm类基于 Python 字典并使用循环符号。给出了perm order、parity、ranking和unranking的计算方法。还显示了随机排列生成。

groups模块中的Group类非常简单,它也是基于字典的。它主要是置换群接口与群阶、子群(归一化器、中心化器、中心、稳定器)、轨道和几个测试的方法的呈现。

setgroups模块中的Group类也很简单,它基于集合。

simsgroups模块中的类Group是高级的,它基于 Sims 理论。

该项目从Google Code移出。

下载

要安装官方版本,请执行

python3 -m pip install permgroups

要获取 git 版本,请执行

git clone https://github.com/ufkapano/permgroups.git

用法

>>> from permgroups.perms import Perm
>>> from permgroups.groups import Group
>>> p = Perm()(0, 1, 2, 4)(3, 5)
>>> ~p
Perm()(0, 4, 2, 1)(3, 5)
>>> p.is_identity(), p.parity(), p.is_even(), p.sign()
(False, 0, True, 1)
>>> p.order(), pow(p, 4)
(4, Perm())
>>> Perm.random(10)
Perm()(0, 1, 4, 2, 7)(3, 9, 8)(5, 6)
>>> G = Group()
>>> G.insert(p)
>>> G.order()
4
>>> list(G.iterperms())
[Perm(), Perm()(0, 1, 2, 4)(3, 5), Perm()(0, 2)(1, 4), Perm()(0, 4, 2, 1)(3, 5)]
>>> Perm()(1, 4)(0, 2) in G, Perm()(0, 1, 2, 3) in G
(True, False)
>>> G.is_abelian()
True

参考

[1] A. Kapanowski,用于教育的 Python:排列http://arxiv.org/abs/1307.7042 [草案]

[2] A. Kapanowski,Python 论文 9, 3 (2014)。 用于教育的 Python:排列。【最终版】 http://ojs.pythonpapers.org/index.php/tpp/article/view/258

贡献者

Andrzej Kapanowski(项目负责人)

托马斯·甘德克

EOF

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

permgroups-1.0.2.tar.gz (16.2 kB 查看哈希

已上传 source

内置分布

permgroups-1.0.2-py3-none-any.whl (24.2 kB 查看哈希

已上传 py3