組合せ関数
| 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 は,整数の階乗に対しては厳密な整数で結果を返す.
| Out[1]= |  |
| Out[2]= |  |
Mathematica は,二項係数によっては,シンボル的な結果を返すこともできる.
| Out[3]= |  |

個のものを6個と5個のものからなる組に分けるとき,分け方が何通りあるかを調べる.
| Out[4]= |  |
この結果は,

と同じである.
| 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項

を求める.
| Out[6]= |  |
また,実際に母関数に対してベキ級数を計算してもベルヌーイの項は求めることができる.
| Out[7]= |  |
| Out[8]= |  |
スターリング数は組合せ理論の枚挙問題によく現れる.第一種のスターリング数StirlingS1[n, m]に対して,
は,ちょうど
回循環する
個の要素の順列の個数を返す.スターリング数は,母関数の関係式
を満たす.注意点として,
の定義によっては,
の係数が付くため Mathematica の定義と異なる場合がある.
第二種のスターリング数StirlingS2[n, m]は
と記述されることもあるが,
個の要素を空でない
組の部分集合に分ける上で何通りの分け方があるかを返す.第二種のスターリング数は,
の関係式を満たす.
ベル数BellB[n]は,要素数
個の集合を空ではない部分集合分割する方法の総数を与える.ベル多項式BellB[n, x]は,生成関数関係
を満足する.
分割関数PartitionsP[n]は,整数
を正整数の和として順不同で組み合すとき,組合せ方が何通りあるかを返す.PartitionsQ[n]は,和を構成する整数成分が相異するとき,整数
の組合せ方が何通りあるかを返す.
IntegerPartitions[n]は,長さが
の
の分割のリストを与える.
| Out[9]= |  |
| Out[10]= |  |
| Out[11]= |  |
| Out[12]= |  |
100を何通りに分割できるかを調べる.最初は項が相異なるとし,次は制約を外した場合である.
| Out[13]= |  |
分割関数

は

に似た形で増加する.注意点として,
PartitionsPのような整数だけを引数とする関数は,
Plotでは直接プロットすることができない.
| Out[14]= |  |
ここで説明してきた関数のほとんどは,各種の組合せの数を数えるのに使われる.これらとは違って,IntegerPartitionsやPermutationsのような関数は,要素の組合せそのもののリストを生成するために使われる.
符号関数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記号でシンボル的なパラメータを使っても構わない.
| Out[15]= |  |