置換のリスト

置換を扱う上で考えられる方法の一つに,それをリストの元の並替えに関連付けるというものがある.これは,置換自体ではなく置換された式に重きを置く,置換に対する組合せ論的アプローチでは標準的な見方である.Wolfram言語では,置換のリストをある非負の整数 n に対するRange[n]の並替えとして暗黙裡に解釈するのが常である,Wolfram言語の標準的な関数には置換のリストの基本的操作ができるものがある.また,置換のリストを操作し,それを互いに素な巡回形式に変換するための関数も追加されている.
PermutationListQ
整数のリストを{1,,n}の並替えとして承認する
PermutationSupport
置換によって動かされる点
置換のリストの基本的機能
10個の整数のリストである:
それが本当に1から始まる連続した整数の並替えであることを検証する:
置換のリストの台は,自然な位置にない点のリストである:
整数のリストがソートされたら,その台は空になる:
置換のリストを互いに素な巡回置換に変換したり,その逆に変換したりすることができる.これは Combinatorica パッケージの関数ToCyclesFromCyclesに似ているが,それよりも向上している.
PermutationCycles
置換を互いに素な巡回置換に変換する
PermutationList
置換を置換のリストに変換する
巡回置換へ/からの変換
置換のリストを取る:
置換のリストの巡回形式を構築する.デフォルトでは一元集合は削除される:
他のどの頭部を選んでも,一元集合は保持される:
次と比較する:
これとは逆に,巡回オブジェクトを任意長の置換リストに変換することができる:
デフォルトでは,長さは巡回置換に存在する最大整数になる:
同じ関数を使って,置換の台を変更せずに置換のリストの長さを変えることができる:
置換のリストは関数PartおよびPermuteを使って,式の一部を並べ替えるのに使うことができる.この2つの関数には2つの違いがある.1つ目は,置換のリストの長さによってはPartは式の引数の数を変更する可能性があるのに対し,Permuteは決して変更しないという点である.2つ目は,PartPermuteでは置換の解釈の仕方が異なるという点である.
Part
場合によっては元を並べ替えて,部分式を返す
Permute
置換により与えられるように式の元を並べ替える
FindPermutation
最初のリストを2番目にする置換を計算する
式の順序を変える
式と置換のリストを取る:
Permuteは,最初の元を4番目に移動させるという風に,元の位置を変えて並べ替えを行う.元の数は変わらない:
Partは部分式を抽出するため,結果の長さが変わる可能性がある.同等の結果を得るためには,置換リストを反転させる必要がある:
Permuteはその第2引数に巡回表記を取ることもできる:
置換の集合として解釈される置換群を使うことも可能である:
Permuteの作用は,巡回表記を返すFindPermutationで打ち消される:
引数を交換すると逆置換が得られる:
Wolfram言語の標準的なコマンドを使って,置換のリストで置換操作を実行することができる.
Part
置換のリストの積
Ordering
置換のリストの逆
Range
恒等置換のリスト
RandomSample
置換のリストの擬似ランダム生成
置換のリストについて再解釈された標準的なコマンド
同じ長さの置換のリストを取る:
以下が左から掛けた積である:
引数の順序を変えることで,Partでも同じ結果を得ることができる:
置換のリストの逆はInversePermutationを使ってもOrderingを使っても計算することができる:
2つの置換のリストの積は,恒等置換のリストを与える:
任意の長さの恒等置換のリストはRangeで表すことができる:
恒等置換のリストのランダムな再並替えは有効な置換のリストである:
置換リストの重要な使い方の一つに,Transposeを使って配列を転置するというものがあるが,これは通常置換された次元とは異なる配列になる.
次元の異なる矩形配列を取る:
転置された配列には,置換された次元がある: