置換のリスト
置換を扱う上で考えられる方法の一つに,それをリストの元の並替えに関連付けるというものがある.これは,置換自体ではなく置換された式に重きを置く,置換に対する組合せ論的アプローチでは標準的な見方である.Wolfram言語では,置換のリストをある非負の整数 n に対するRange[n]の並替えとして暗黙裡に解釈するのが常である,Wolfram言語の標準的な関数には置換のリストの基本的操作ができるものがある.また,置換のリストを操作し,それを互いに素な巡回形式に変換するための関数も追加されている.
PermutationListQ | 整数のリストを{1,…,n}の並替えとして承認する |
PermutationSupport | 置換によって動かされる点 |
置換のリストを互いに素な巡回置換に変換したり,その逆に変換したりすることができる.これは Combinatorica パッケージの関数ToCyclesとFromCyclesに似ているが,それよりも向上している.
PermutationCycles | 置換を互いに素な巡回置換に変換する |
PermutationList | 置換を置換のリストに変換する |
置換のリストは関数PartおよびPermuteを使って,式の一部を並べ替えるのに使うことができる.この2つの関数には2つの違いがある.1つ目は,置換のリストの長さによってはPartは式の引数の数を変更する可能性があるのに対し,Permuteは決して変更しないという点である.2つ目は,PartとPermuteでは置換の解釈の仕方が異なるという点である.
Part | 場合によっては元を並べ替えて,部分式を返す |
Permute | 置換により与えられるように式の元を並べ替える |
FindPermutation | 最初のリストを2番目にする置換を計算する |
Permuteは,最初の元を4番目に移動させるという風に,元の位置を変えて並べ替えを行う.元の数は変わらない:
Partは部分式を抽出するため,結果の長さが変わる可能性がある.同等の結果を得るためには,置換リストを反転させる必要がある:
Permuteはその第2引数に巡回表記を取ることもできる:
Part | 置換のリストの積 |
Ordering | 置換のリストの逆 |
Range | 恒等置換のリスト |
RandomSample | 置換のリストの擬似ランダム生成 |
引数の順序を変えることで,Partでも同じ結果を得ることができる:
任意の長さの恒等置換のリストはRangeで表すことができる:
置換リストの重要な使い方の一つに,Transposeを使って配列を転置するというものがあるが,これは通常置換された次元とは異なる配列になる.