algebra/permutation-group-ja.html

[index-ja] Algebra::PermutationGroup / Algebra::Permutation

# Algebra::PermutationGroup

置換群のクラスです。要素として Permutation のインスタンス が指定されているとします。

## ファイル名:

- permutation-group.rb

## スーパークラス:

- Group

## クラスメソッド:

`::new(u, [g0, [g1, ...]])`
  u を単位元とし、g0, g1, ... で構成される群を 返します。
`::unit_group(d)`
  次数が d の単位群を返します。
`::unity(n)`
  次数が n の単位元を返します。
`::perm(a)`
  配列 a で表される置換を返します。
`::symmetric(n)`
  n 次の対称群を返します。
`::alternate(n)`
  n 次の交代群を返します。

# Algebra::Permutation

置換を表現するクラスです。

## ファイル名:

- permutation-group.rb

## スーパークラス:

- Object

## インクルードしているモジュール:

- Enumerable
- Powers

## クラスメソッド:

`::new(x)`
  x という配列で表現される置換を生成します。
`::[[n0, [n1, [n2, ..., ]]]]`

  `[n0, n1, n2, ..., ]` という置換を生成します。 例

      a = Permutation[1, 2, 0]
      p a**2 #=> [2, 0, 1]
      p a**3 #=> [0, 1, 2]

`::unity(d)`
  d 次の単位元を返します。
`::cyclic2perm(c, n)`

  c という巡回置換を表す配列の配列から、Permutation オブジェクトを生成します。n は次数です。 decompose_cyclic の逆です。

  例:

      Permutation.cyclic2perm([[1,6,5,4], [2,3]], 7) #=> [0, 6, 3, 2, 1, 4, 5]
      Permutation[0, 6, 3, 2, 1, 4, 5].decompose_cyclic #=> [[1,6,5,4], [2,3]]

## メソッド:

`unity`
  単位元を返します。
`perm`
  配列表現を返します。
`degree`
  次数を返します。
`size`
  degree のエイリアスです。
`each`
  置換の各元について繰り返します。
`eql?(other)`
  other と等しいとき真を返します。
`==`
  eql? のエイリアスです。
`hash`
  ハッシュ値を返します。
`[i]`
  i の置換先を返します。
`call`
  [] のエイリアスです。
`index(i)`
  i の置換元を返します。
`right_act(other)`
  other を右からかけます。すなわち `(g.right_act(h))[x] == h[g[x]]` が成立します。
`*`
  right_act のエイリアスです。
`left_act(other)`
  other を左からからかけます。すなわち `(g.left_act(h))[x] == g[h[x]]` が成立します。
`inverse`
  逆元を返します。
`inv`
  inverse のエイリアスです。
`sign`
  符号を返します。
`conjugate(g)`
  g による共役 `g * self * g.inv` を返します。
`decompose_cyclic`
  配列による巡回表現の配列を返します。 ::cyclic2perm(c, n) の逆です。
`to_map`
  Map オブジェクト化します。
`decompose_transposition`
  互換の配列に分解したものを返します。