我想在圣人中定义新图。令G为有限组。当且仅当两个子组的总和为g。
时我在Sage中定义此图时遇到麻烦。有建议吗?我有差距的想法,但我不知道鼠尾草可以改变什么?
Summands := function(G)
local n, i, sgl, l, A, B, D;
获取所有子组的列表
sgl := List(LatticeSubgroups(G)!.conjugacyClassesSubgroups, Representative);
n是| g |
的除数的数量n := Size(DivisorsInt(Size(G)));
D := [];
if IsOddInt(n) then l := QuoInt(n + 1, 2);
else l := QuoInt(n, 2);
fi;
for i in [1..l] do
for A in Filtered(sgl, function(g) return Size(g) = DivisorsInt(Size(G))[i]; end) do
for B in Filtered(sgl, function(g) return Size(g) = DivisorsInt(Size(G))[n+1-i]; end) do
Add(D, [A, B]);
od;
od;
od;
return D;
end;
这是其中一些命令的鼠尾草等效物。顺便说一句,我们将差距用于组计算!
sage: D = DihedralGroup(5)
sage: D.subgroups()
[Permutation Group with generators [()], Permutation Group with generators [(2,5)(3,4)], Permutation Group with generators [(1,2)(3,5)], Permutation Group with generators [(1,3)(4,5)], Permutation Group with generators [(1,4)(2,3)], Permutation Group with generators [(1,5)(2,4)], Permutation Group with generators [(1,2,3,4,5)], Permutation Group with generators [(1,5,4,3,2), (1,5)(2,4)]]
sage: divisors(D.cardinality())
[1, 2, 5, 10]
要在圣人中绘制图形,您可以通过列表或其他内容的字典;参见
sage: Graph?
有关此的更多信息。
编辑 - 留在上面以使评论可理解:
顺便说一句,看起来您正在尝试列出一对子组A
和B
的列表,以便|A||B|=ord(G)
。这必然与总和(无论您是直接总和是什么意思吗?)的群体是相同的吗?我在想,例如,即使是一组订单四;总结两个订单的两个子组,两个子组可能不是原始组的同构 - 例如,如果两个子组是相同的,则如果您是指某种环境总和(这甚至有意义),或者如果您使用直接总和但是该组是第4顺序的环状组,而不是klein四组。