0

セージで新しいグラフを定義したい。Gを有限群とします。グラフの頂点はサブグループであり、2つのサブグループの合計がGである場合に限り、2つの頂点が隣接しています。

このグラフをセージで定義するのに問題があります。なにか提案を?ギャップのあるアイデアはありますが、セージで何を変更できるのかわかりません。

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;
4

1 に答える 1

0

これらのコマンドのいくつかに相当するSageは次のとおりです。ちなみに、グループ計算にはGAPを使用しています!

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でグラフを作成するには、リストなどの辞書を渡すことができます。見る

sage: Graph?

詳細については。

編集-コメントをわかりやすくするために残しました:

ちなみに、サブグループのペアなどのリストを作成しようとしているAようBです|A||B|=ord(G)。それは、その合計(それが何を意味するのか-直和?)が元のグループであるグループと必然的に同じですか?たとえば、4次のグループでさえ考えています。2次の任意の2つのサブグループを合計すると、元のグループと同型ではない場合があります。たとえば、2つのサブグループが同じである場合、ある種の周囲和を意味する場合(これは意味がありますか?)、または直接和を使用する場合しかし、グループは4次の巡回群であり、クラインの4元群ではありません。

于 2012-10-16T12:49:54.040 に答える