排列组的 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
查看哈希)
内置分布
permgroups-1.0.2-py3-none-any.whl
(24.2 kB
查看哈希)
关
permgroups -1.0.2.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 1c15cd63930b05821cb02c0f753bf963d9106f7455e1ccb616ee61333d680e9a |
|
MD5 | f066fe9a21c8219c5bf88ddfcfb9938d |
|
布莱克2-256 | 0f4b1cb6d5947b0abf47e6e385aa0eeaa2dd82df331476c8f5d21da34db0b86f |
关
permgroups -1.0.2-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 3e7cd405f4aa5b78a11fff6b5b2afb89062b5e720e62bcf4b6c1179c90dce081 |
|
MD5 | 76d12c15b831affc33c94872325fd6d3 |
|
布莱克2-256 | eab0081b759c1dcc2d7cab3b5d429a9755bee084f70c7f73e1fc31498182989c |