使用sympy时,为什么排列组不是一个组?

时间:2015-11-11 04:54:41

标签: python-3.x sympy symbolic-math

我已经运行了这段代码,很明显地期望结果为True,但事实并非如此。我无法针对此行为制作文档的正面或反面,所以如果有人能够向我解释,我会感激它。

from sympy.combinatorics.named_groups import SymmetricGroup

G = SymmetricGroup(3)
print(G.is_group())

[编辑:奇怪的是,我对此进行了测试,结果显示True

from sympy.combinatorics import Permutation
from sympy.combinatorics.perm_groups import PermutationGroup
from sympy.combinatorics.named_groups import SymmetricGroup

G = SymmetricGroup(3)
H = PermutationGroup( Permutation(0,1,2) )
print(G.is_normal(H))

1 个答案:

答案 0 :(得分:0)

所以我找到了答案,就是“组”在创建时只存储一个生成集。要查看此操作,请运行以下代码,该代码仅打印两个元素。

from sympy.combinatorics.named_groups import SymmetricGroup

G = SymmetricGroup(3)
for i in G:
    print(i)

但是,我现在留下了一个奇怪的事实,即由于我无法发现的原因,此代码打印True False

from sympy.combinatorics import Permutation
from sympy.combinatorics.perm_groups import PermutationGroup
from sympy.combinatorics.named_groups import SymmetricGroup

G = PermutationGroup(list(SymmetricGroup(3).generate()))

H = PermutationGroup( Permutation([0,1,2]) ) # This should just be the trivial
                                            # subgroup and therefore normal

print(H.is_subgroup(G), H.is_normal(G))