定義
グループの定義が既にわかっている場合は、この部分をスキップできます。有限グループ、およびサブグループの。
グループ
抽象代数では、グループはタプル(G、∗)です。ここで、Gは集合であり、∗は関数G×G→Gです。次のようなです。
閉包:Gのすべてのx、yについて、x ∗ yはGにもあります(∗が関数G×G→Gであるという事実によって暗示されます)。
連想:すべてのためのX、Y、ZにおけるG、(X * Y)* Z = X *(Y * Z) 。
同一性:要素が存在するEにおけるGのようにすべてのためのxにおけるG、X * E = X = E * X。
逆:毎XにおけるG、要素が存在するYはでGように、X * Y = E = Y * X、E前の箇条書きに記載された同一要素です。
有限グループ
有限群の基である(G、*)G、有限であるすなわち、有限個の要素を有します。
サブグループ
サブグループ (H *)グループの(G、*)があるようであり、Hは、の部分集合であるG(必ずしも適切ではないサブセット)および(H *)、グループ(すなわち、満足4つの基準を超える)です。
例
検討二面体群のD 3 (G、*)G = {1、A、B、C、D、E}及び*は以下に定義されているが(このようなテーブルが呼び出されケーリーテーブル):
∗ | 1 ABCDE -+ ---------------------- 1 | 1 ABCDE A | AB 1月12日 B | B 1 AECD C | CED 1 BA D | DCEA 1 B E | EDCBA 1
このグループでは、IDは1です。また、AとBはながら、互いの逆数である1、C、D、及びEは、の逆数(それぞれ自身の逆数である1がある1の逆、CであるCの逆Dがであり、D、および逆数EはあるE)。
これで、H = {1、A、B}の(H、∗)が(G、∗)のサブグループであることを検証できます。閉鎖については、以下の表を参照してください。
∗ | 1 AB -+ ---------- 1 | 1 AB A | AB 1 B | B 1 A
どこの要素のすべての可能なペアHの下の*は、内のメンバー与えるHを。
Hの要素はGの要素であるため、結合性はチェックを必要としません。
IDは1です。これは、グループIDと同じでなければなりません。また、グループ内のIDは一意である必要があります。(これを証明できますか?)
逆変換のための逆ていることを確認し、Aがであり、Bのメンバーである、H。Bの逆はAで、これもHのメンバーです。1の逆はそれ自体であり、確認する必要はありません。
仕事
説明
有限グループ(G、∗)が与えられた場合、そのサブグループの数を見つけます。
入力
グループ(G、∗)の場合、サイズn×nの 2D配列を受け取ります。ここで、nはGの要素数です。インデックス0
がアイデンティティ要素であると仮定します。2D配列は乗算表を表します。たとえば、上記のグループの場合、次の2D配列を受け取ります。
[[0, 1, 2, 3, 4, 5],
[1, 2, 0, 4, 5, 3],
[2, 0, 1, 5, 3, 4],
[3, 5, 4, 0, 2, 1],
[4, 3, 5, 1, 0, 2],
[5, 4, 3, 2, 1, 0]]
たとえば、あなたが見ることができる3 * 1 = 5理由a[3][1] = 5
場合、a
上記2次元アレイです。
ノート:
- 1インデックスの2D配列を使用できます。
- IDの行と列は省略できます。
- 適切と思われる他の形式を使用することもできますが、一貫している必要があります。(つまり、最後のインデックスを代わりにIDにしたい場合など)
出力
グループ内のサブグループの数を表す正の数。
たとえば、上のグループの場合、H =のときはいつでも(H、∗)は(G、∗)のサブグループです。
- {1}
- {1、A、B}
- {1、C}
- {1、D}
- {1、E}
- {1、A、B、C、D、E}
したがって、6つのサブグループがあり、この例の出力はになります6
。
ヒント
私がリンクした記事を読むことができます。それらの記事には、あなたに役立つかもしれないグループとサブグループに関する定理が含まれています。
得点
これはcode-golfです。最も少ないバイト数で勝ちます。
0
、アイデンティティ要素を、オペレータのように記述持っている混乱だ乗算 ...