使い方(3ステップ)
- nと表現(括弧列・Dyck路・二分木)を選びます。
- 列挙またはサンプルを選び、上限やseedを設定します。
- C_n、例、表を確認してCSVや共有URLを使います。
入力
結果
C_n
C_n = (1 / (n + 1)) * C(2n, n)
C_0 = 1, C_{n+1} = sum_{i=0..n} C_i * C_{n-i}
例の読み方
括弧列は'('と')'、Dyck路はU=上、R=右。木は(L,R)で表し、葉を'*'で示します。
大きいnでは列挙を停止し、一様サンプルを推奨します。
例の一覧
テーブル(C_0 から C_nMax)
| n | C_n | 桁数 |
|---|
例題
n=3(5通り)
長さ6の括弧列は ((())), (()()), (())(), ()(()), ()()() の5通りです。
n=10(C_10=16796)
列挙できない場合はサンプルを確認し、CSVで保存できます。
よくある質問
カタラン数とは?
正しい括弧列、Dyck路、完全二分木などの個数を数える数列です。
列挙に上限がある理由は?
個数が急増するため、ページの負荷を抑えるためです。
サンプルは一様ですか?
はい。DPによる通り数で分岐するため一様です。seedで再現できます。
Dyck路との対応は?
'('をU、')'をRに対応させると、対角線を越えない格子路になります。
多角形の三角形分割との関係は?
凸(n+2)角形の三角形分割の総数もカタラン数C_nになります。
二分木の定義は?
内部ノード数nの完全二分木を採用しています。葉は'*'で表記します。