組合せ関数

n!階乗
n!!二重階乗
Binomial[n,m]二項係数
Multinomial[n1,n2,...]多項係数
CatalanNumber[n]カタラン(Catalan)数
Hyperfactorial[n]超階乗
BarnesG[n]バルネス(Barnes)のG関数
Subfactorial[n] 個のオブジェクトの乱列の数
Fibonacci[n]フィボナッチ(Fibonacci)数
Fibonacci[n,x]フィボナッチ多項式
LucasL[n]リュカ(Lucas)数
LucasL[n,x]リュカ多項式
HarmonicNumber[n]調和数
HarmonicNumber[n,r] 次の調和数
BernoulliB[n]ベルヌーイ(Bernoulli)数
BernoulliB[n,x]ベルヌーイ多項式
NorlundB[n,a]ネールルンド(Nörlund)多項式
NorlundB[n,a,x]一般化されたベルヌーイ多項式
EulerE[n]オイラー(Euler)数
EulerE[n,x]オイラーの多項式
StirlingS1[n,m]第一種のスターリング(Stirling)数
StirlingS2[n,m]第二種のスターリング数
BellB[n]ベル(Bell)数
BellB[n,x]ベル多項式
PartitionsP[n]整数 を整数の和に分けるときの分け方の総数
IntegerPartitions[n]整数の分け方
PartitionsQ[n]整数 を互いに異なる整数の和に分けるときの分け方の総数
Signature[{i1,i2,...}]順列の符号

順列組合せの関数

階乗関数 は, 個のものの並べ方の総数を与える. が整数でないとき,の数値は「特殊関数」で説明するガンマ関数から求められる.

二項係数の関数Binomial[n, m]は,と書ける.この関数は,並び順を考慮しないとき, 個のものの中からの 個のものの取出し方の数を与える.また,各種の木の枚挙問題に現れるカタラン数は,二項係数により,の関係式で与えられる.

かく乱順列Subfactorial[n]は,オブジェクトがひとつも固定されない 個のオブジェクトの置換の数を与える.このような置換は乱列と呼ばれる.かく乱順列は で与えられる.

多項係数Multinomial[n1, n2, ...]は,と書け, 個の異なるものを大きさ 個の集合に分ける方法の総数を表す().

Mathematica は,整数の階乗に対しては厳密な整数で結果を返す.
In[1]:=
Click for copyable input
Out[1]=
非整数の階乗は,ガンマ関数で評価される.
In[2]:=
Click for copyable input
Out[2]=
Mathematica は,二項係数によっては,シンボル的な結果を返すこともできる.
In[3]:=
Click for copyable input
Out[3]=
個のものを6個と5個のものからなる組に分けるとき,分け方が何通りあるかを調べる.
In[4]:=
Click for copyable input
Out[4]=
この結果は,と同じである.
In[5]:=
Click for copyable input
Out[5]=

フィボナッチの数Fibonacci[n]は,のときに漸化式 を満たす.この数は離散数学で広く使われる. を増加させると,は黄金比に近付く.リュカ数LucasL[n]は,初期値が の,フィボナッチ数と同じ循環関係を満足する.

フィボナッチの多項式Fibonacci[n, x]は,式 の展開で得られる項 の係数に当たる.

調和数HarmonicNumber[n] で与えられる. 次の調和数HarmonicNumber[n, r] で与えられる.調和数は多くの組合せ論の推定問題で現れ,しばしば離散化された対数に相当する役割を演じる.

ベルヌーイの多項式BernoulliB[n, x]は,母関数の関係式 を満たす.また,ベルヌーイ数BernoulliB[n]は,で与えられる. は,近似積分で使われるオイラー・マクローリン(Euler-Maclaurin)総和の式における項の係数に当たる.ベルヌーイ数はジェノッチ数と の関係にある.

ベルヌーイ数の近似値はさまざまな数値計算アルゴリズムで使われる.ベルヌーイ数の数値は,まずBernoulliB[n]を使い厳密な有理値として求めておき,それにNを適用することで求められる.

オイラーの多項式EulerE[n, x]は,母関数の関係式を満たす.また,オイラー数EulerE[n]は,で与えられる.

ネールルンド多項式NorlundB[n, a]は母関数の関係式 を満足する.ネールルンドは,のときベルヌーイ数を返す. が他の正の整数値である場合,ネールルンド多項式は高次のベルヌーイ数を返す.一般化されたベルヌーイ多項式NorlundB[n, a, x] は,母関数の関係式 を満足する.

ベルヌーイの多項式の第2項 を求める.
In[6]:=
Click for copyable input
Out[6]=
また,実際に母関数に対してベキ級数を計算してもベルヌーイの項は求めることができる.
In[7]:=
Click for copyable input
Out[7]=
BernoulliB[n]は,ベルヌーイ数を厳密な有理数として返す.
In[8]:=
Click for copyable input
Out[8]=

スターリング数は組合せ理論の枚挙問題によく現れる.第一種のスターリング数StirlingS1[n, m]に対して,は,ちょうど 回循環する 個の要素の順列の個数を返す.スターリング数は,母関数の関係式 を満たす.注意点として, の定義によっては, の係数が付くため Mathematica の定義と異なる場合がある.

第二種のスターリング数StirlingS2[n, m]と記述されることもあるが, 個の要素を空でない 組の部分集合に分ける上で何通りの分け方があるかを返す.第二種のスターリング数は,の関係式を満たす.

ベル数BellB[n]は,要素数 個の集合を空ではない部分集合分割する方法の総数を与える.ベル多項式BellB[n, x]は,生成関数関係 を満足する.

分割関数PartitionsP[n]は,整数 を正整数の和として順不同で組み合すとき,組合せ方が何通りあるかを返す.PartitionsQ[n]は,和を構成する整数成分が相異するとき,整数 の組合せ方が何通りあるかを返す.

IntegerPartitions[n]は,長さがTemplateBox[{PartitionsP, paclet:ref/PartitionsP}, RefLink, BaseStyle -> InlineFormula][n] の分割のリストを与える.

第一種のスターリング数の表を作る.
In[9]:=
Click for copyable input
Out[9]=
積の展開項の係数がスターリング数に当たる.
In[10]:=
Click for copyable input
Out[10]=
これは,4の分割である.
In[11]:=
Click for copyable input
Out[11]=
分割数はPartitionsP[4]で与えられる.
In[12]:=
Click for copyable input
Out[12]=
100を何通りに分割できるかを調べる.最初は項が相異なるとし,次は制約を外した場合である.
In[13]:=
Click for copyable input
Out[13]=
分割関数 に似た形で増加する.注意点として,PartitionsPのような整数だけを引数とする関数は,Plotでは直接プロットすることができない.
In[14]:=
Click for copyable input
Out[14]=

ここで説明してきた関数のほとんどは,各種の組合せの数を数えるのに使われる.これらとは違って,IntegerPartitionsPermutationsのような関数は,要素の組合せそのもののリストを生成するために使われる.

符号関数Signature[{i1, i2, ...}]は順列の符号を返す.偶順列ならを返し,奇順列ならを返す.偶順列(もしくは,奇順列)とは順列が偶数回(奇数回)の互換(2つの要素の入れ替え)で得られることを指す.符号関数は,交代テンソルであるレヴィ・チヴィタ(Levi-Civita)の記号,または,イプシロン記号としてとらえることができる.

ClebschGordan[{j1,m1},{j2,m2},{j,m}]クレプシュ・ゴルダン(Clebsch-Gordan)の係数
ThreeJSymbol[{j1,m1},{j2,m2},{j3,m3}]ウィグナー(Wigner)の3-j 記号
SixJSymbol[{j1,j2,j3},{j4,j5,j6}]ラカー(Racah)の6-j 記号

角運動量の合成に関する係数

クレプシュ・ゴルダンの係数と -j記号は,量子力学における角運動量の解析や,その他の回転群の応用の問題で使われる.クレプシュ・ゴルダンの係数ClebschGordan[{j1, m1}, {j2, m2}, {j, m}]は,量子化された角運動量の状態を展開したとき得られる項の係数を状態の積で与える.

3-j記号あるいはウィグナー係数のThreeJSymbol[{j1, m1}, {j2, m2}, {j3, m3}]は,クレプシュ・ゴルダンの係数より高い対称性を持つ.Mathematica における定義では,クレプシュ・ゴルダンの係数は,3-j記号に基づいた の関係式で与えられる.

ラカーの6-j記号SixJSymbol[{j1, j2, j3}, {j4, j5, j6}]は,3つの量子論的な角運動量の取る結合状態を与える.ラカーの係数と6-j記号は1位相を介し関連している.

3-j記号でシンボル的なパラメータを使っても構わない.
In[15]:=
Click for copyable input
Out[15]=
New to Mathematica? Find your learning path »
Have a question? Ask support »