置換のリスト

置換を扱う上で考えられる方法の一つに,それをリストの元の並替えに関連付けるというものがある.これは,置換自体ではなく置換された式に重きを置く,置換に対する組合せ論的アプローチでは標準的な見方である.Mathematica では,置換のリストをある非負の整数 n に対するRange[n]の並替えとして暗黙裡に解釈するのが常である,Mathematica の標準的な関数には置換のリストの基本的操作ができるものがある.また,置換のリストを操作し,それを互いに素な巡回形式に変換するための関数も追加されている.

PermutationListQ整数のリストをの並替えとして承認する
PermutationSupport置換によって動かされる点

置換のリストの基本的機能

10個の整数のリストである.
In[1]:=
Click for copyable input
Out[1]=
それが本当に1から始まる連続した整数の並替えであることを検証する.
In[2]:=
Click for copyable input
Out[2]=
置換のリストの台は,自然な位置にない点のリストである.
In[3]:=
Click for copyable input
Out[3]=
整数のリストがソートされたら,その台は空になる.
In[4]:=
Click for copyable input
Out[4]=

置換のリストを互いに素な巡回置換に変換したり,その逆に変換したりすることができる.これは Combinatorica パッケージの関数ToCyclesFromCyclesに似ているが,それよりも向上している.

PermutationCycles置換を互いに素な巡回置換に変換する
PermutationList置換を置換のリストに変換する

巡回置換へ/からの変換

置換のリストを取る.
In[5]:=
Click for copyable input
Out[5]=
置換のリストの巡回形式を構築する.デフォルトでは一元集合は削除される.
In[6]:=
Click for copyable input
Out[6]=
他のどの頭部を選んでも,一元集合は保持される.
In[7]:=
Click for copyable input
Out[7]=
次と比較する.
In[8]:=
Click for copyable input
In[9]:=
Click for copyable input
Out[9]=
これとは逆に,巡回オブジェクトを任意長の置換リストに変換することができる.
In[10]:=
Click for copyable input
Out[10]=
デフォルトでは,長さは巡回置換に存在する最大整数になる.
In[11]:=
Click for copyable input
Out[11]=
同じ関数を使って,置換の台を変更せずに置換のリストの長さを変えることができる.
In[12]:=
Click for copyable input
Out[12]=
In[13]:=
Click for copyable input
Out[13]=

置換のリストは関数PartおよびPermuteを使って,式の一部を並べ替えるのに使うことができる.この2つの関数には2つの違いがある.1つ目は,置換のリストの長さによってはPartは式の引数の数を変更する可能性があるのに対し,Permuteは決して変更しないという点である.2つ目は,PartPermuteでは置換の解釈の仕方が異なるという点である.

Part場合によっては元を並べ替えて,部分式を返す
Permute置換により与えられるように式の元を並べ替える
FindPermutation最初のリストを2番目にする置換を計算する

式の順序を変える

式と置換のリストを取る.
In[14]:=
Click for copyable input
Permuteは,最初の元を4番目に移動させるという風に,元の位置を変えて並べ替えを行う.元の数は変わらない.
In[15]:=
Click for copyable input
Out[15]=
Partは部分式を抽出するため,結果の長さが変わる可能性がある.同等の結果を得るためには,置換リストを反転させる必要がある.
In[16]:=
Click for copyable input
Out[16]=
Permuteはその第2引数に巡回表記を取ることもできる.
In[17]:=
Click for copyable input
Out[17]=
置換の集合として解釈される置換群を使うことも可能である.
In[18]:=
Click for copyable input
Out[18]=
In[19]:=
Click for copyable input
Out[19]=
In[20]:=
Click for copyable input
Out[20]=
Permuteの作用は,巡回表記を返すFindPermutationで打ち消される.
In[21]:=
Click for copyable input
Out[21]=
In[22]:=
Click for copyable input
Out[22]=
引数を交換すると逆置換が得られる.
In[23]:=
Click for copyable input
Out[23]=
In[24]:=
Click for copyable input
Out[24]=

Mathematica の標準的なコマンドを使って,置換のリストで置換操作を実行することができる.

Part置換のリストの積
Ordering置換のリストの逆
Range恒等置換のリスト
RandomSample置換のリストの擬似ランダム生成

置換のリストについて再解釈された標準的なコマンド

同じ長さの置換のリストを取る.
In[25]:=
Click for copyable input
以下が左から掛けた積である.
In[26]:=
Click for copyable input
Out[26]=
引数の順序を変えることで,Partでも同じ結果を得ることができる.
In[27]:=
Click for copyable input
Out[27]=
置換のリストの逆はInversePermutationを使ってもOrderingを使っても計算することができる.
In[28]:=
Click for copyable input
Out[28]=
In[29]:=
Click for copyable input
Out[29]=
2つの置換のリストの積は,恒等置換のリストを与える.
In[30]:=
Click for copyable input
Out[30]=
任意の長さの恒等置換のリストはRangeで表すことができる.
In[31]:=
Click for copyable input
Out[31]=
恒等置換のリストのランダムな再並替えは有効な置換のリストである.
In[32]:=
Click for copyable input
Out[32]=

置換リストの重要な使い方の一つに,Transposeを使って配列を転置するというものがあるが,これは通常置換された次元とは異なる配列になる.

次元の異なる矩形配列を取る.
In[33]:=
Click for copyable input
Out[33]=
In[34]:=
Click for copyable input
Out[34]=
転置された配列には,置換された次元がある.
In[35]:=
Click for copyable input
Out[35]=
In[36]:=
Click for copyable input
Out[36]=
New to Mathematica? Find your learning path »
Have a question? Ask support »