座標平面上で、原点 から点 まで、1 歩ごとに 軸の正の向きに 進む(右へ )か、 軸の正の向きに 進む(上へ )かのどちらかで進む最短経路を考える。このうち、経路上のすべての格子点 が を満たすもの(直線 より上側に一度も出ないもの)の個数を求めよ。
カタラン数
対角線を越えない格子路・正しい括弧列・二分木・凸多角形の三角形分割などの個数を、鏡像原理による や漸化式 で求められる
前提
- 組合せ (数学A 場合の数と確率)
この技能までの道筋(5 技能)
読み込み中…
右端(太枠)がこの技能です。左へドラッグすると、さらに前の前提をさかのぼれます。技能を押すと、そこまでの道筋が光ります。
一覧で見る(前提が先)
- 樹形図で数え上げる (算数 場合の数)
- 積の法則と和の法則 (算数 場合の数)
- 和の法則・積の法則と樹形図 (数学A 場合の数と確率)
- 順列・円順列・重複順列 (数学A 場合の数と確率)
- 組合せ (数学A 場合の数と確率)
説明
カタラン数 は、「途中で決まりを破らない並べ方」の個数として、さまざまな場面に現れる数の列 ()です。対角線を越えない格子路、正しく対応のとれた括弧列、 個の頂点をもつ二分木、凸 角形の三角形分割などの個数は、どれも になります。直接数えると数え漏れや重複が起きやすい問題でも、二項係数の引き算 か、漸化式 で求められます。
なぜそうしてよいのか
基本になるのは格子路です。点 から まで、右に 1 進む(R)か上に 1 進む(U)かを 回繰り返す道を考えます。道全体の数は、 歩のうちどの 歩を R にするかを選ぶので 通りです。このうち「途中で常に (対角線より上に出ない)」を満たす道を良い道、満たさない道を悪い道と呼びます。悪い道は、どこかで直線 上の点に必ず触れます( を破った最初の瞬間に になるからです)。そこで、悪い道が最初に に触れた点より後ろの部分を、直線 について折り返します(R と U を入れ替えます)。すると終点 は に移ります。逆に から への道は、終点が の上側にあるので必ず に触れ、最初に触れた点から後ろを折り返すと元の悪い道に戻ります。こうして、悪い道と「 から への道」が 1 対 1 に対応します(鏡像原理)。後者は R が 回、U が 回なので 通りです。
したがって良い道の数は です。 なので、 と整理できます。括弧列は「( を R、) を U」と読みかえると、「どの途中までを見ても ( の数が ) の数以上」という条件が にちょうど対応するので、同じ 個です。
漸化式は「最初の区切り」で場合分けすると得られます。 組の正しい括弧列の先頭の ( に対応する ) を見つけると、列は の形にただ 1 通りに分かれます。 が 組()なら は 組で、どちらも正しい括弧列です。積の法則と和の法則から (ただし空の列も 1 通りと数えて )となります。二分木(根と左部分木・右部分木に分ける)や三角形分割(決まった 1 辺を含む三角形で分ける)も同じ形に分かれるので、同じ漸化式・同じ初期値をもち、個数は になります。
手順
数えたいものを「決まりを破らない列」として読みかえ、大きさ を決める(例: 組の括弧列、 から の格子路、凸 角形の三角形分割)。
制限なしの総数を求める: 。
決まりを破るものを鏡像原理で数える: 最初に破った点から後を折り返すと への道と 1 対 1 に対応し、 個。
引き算して を計算する。
(別法)小さい から順に求めたいときや構造で分けたいときは、 と を使って順に計算する。
例題
( を 5 個、) を 5 個並べてできる長さ 10 の列のうち、左から順にどこまで見ても ( の個数が ) の個数以上であるもの(正しい括弧列)の個数を求めよ。
例題の解答
手順 1: ( を右へ 1 歩、) を上へ 1 歩と読みかえると、正しい括弧列は から への格子路で常に を満たすものに対応する。よって である。
手順 2: 制限なしの並べ方は、10 か所のうち ( を置く 5 か所を選んで 通り。
手順 3: 条件を破る列は、初めて ) の個数が ( の個数を 1 上回った時点より後ろの ( と ) をすべて入れ替えると、( が 4 個、) が 6 個の列と 1 対 1 に対応する。その個数は 通り。
手順 4: 。検算として でも一致する。
(手順 5 による確認) から 。
答え:
よくある誤り
凸多角形の三角形分割で、 角形の個数を としてしまう誤り。正しくは凸 角形が に対応するので、凸六角形なら ( ではない)。
鏡像原理で直線 について折り返してしまう誤り。 上の点に触れるのは許されているので、折り返す直線は であり、悪い道の数は 。 で折り返しても悪い道は数えられない。
式を と覚えてしまう誤り。正しくは で、例えば では ( は整数にすらならない)。
漸化式で を落としたり、 と添字をずらしてしまう誤り。正しくは のもとで で、例えば 。
この説明は AI が書き、別の AI が例題を独立に解いて答えを確かめ、説明を一歩ずつ査読しました。
入口の問題
座標平面上で、原点 から点 まで、1 歩ごとに 軸の正の向きに 進むか、 軸の正の向きに 進むかのどちらかで移動する経路(最短経路)を考える。このうち、途中で通る格子点 がすべて を満たす経路は何通りあるか求めよ。
ある窓口で 1 枚 500 円の券を売っている。窓口に並んだ 10 人の客のうち、5 人は 500 円硬貨 1 枚で支払い、残りの 5 人は 1000 円札 1 枚で支払う。1000 円札で支払う客には、その場で 500 円硬貨 1 枚のおつりを渡す。窓口のレジには、はじめ硬貨が 1 枚も入っていない。客を区別せず、10 人の支払い方の並び(500 円硬貨を A、1000 円札を B として、A を 5 個、B を 5 個並べた長さ 10 の列)だけを考えるとき、どの客にも必ずおつりを渡せるような並びは何通りあるか求めよ。
この技能を使う問題
原子型として ただ 1 つをもち、定数をもたない単純型付きラムダ計算(チャーチ流)を考える。型は で生成される式とし、括弧の付け方(木としての形)が異なる型は異なる型とみなす。型 が住人をもつとは、型 の閉じた項(自由変数をもたない項)が存在することをいう。
矢印 をちょうど 個含む型(したがって をちょうど 個含む型)のうち、住人をもつものの個数を求めよ。
互いに異なる つの原子型 をもち、定数をもたない単純型付きラムダ計算(チャーチ流)を考える。型は
で生成される式とする。括弧の付け方(木としての形)または原子型の配置が異なる型は、異なる型とみなす。 は右結合とし、型に現れる の個数をその型の矢印数とよぶ。型 の住人とは、型 をもつ閉項であって、 正規形かつ 長形(long normal form)であるもののこととする。住人は 同値なものを同一視して数える。
矢印数がちょうど である型のうち、住人をちょうど つだけもつ型の個数を求めよ。
カタラン数 を
で定める。0 以上の整数 について、 が奇数であるための必要十分条件は、ある 0 以上の整数 を用いて と表されることであることを証明せよ( とし、 は の場合にあたる)。集合 の分割(空でない互いに素なブロックへの分け方。ブロックの順序は区別しない)を考える。分割が非交差であるとは、 を満たす で、 が同じブロックに属し、 がそれとは異なる同じブロックに属するようなものが存在しないことをいう。
の非交差分割のうち、どのブロックも 2 個以上の要素を含む(要素 1 個だけのブロックを持たない)ものの個数を求めよ。
左括弧「(」7 個と右括弧「)」7 個を 1 列に並べた長さ 14 の文字列で、正しく対応のとれた括弧列(どの位置までを見ても「(」の個数が「)」の個数以上であり、全体では両者が等しいもの)を考える。括弧列の左から 文字目までに含まれる「(」の個数から「)」の個数を引いた値を 文字目での深さとし、 にわたる深さの最大値を、その括弧列の入れ子の深さという。入れ子の深さが 3 以下である正しい括弧列の個数を求めよ。
原子型を ただ 1 つだけもつ単純型付きラムダ計算(チャーチ流、定数なし)を考える。型は
で生成されるものとし、括弧の付け方が異なる型は異なる型とみなす(たとえば と は異なる型である)。型 に含まれる記号 の個数を の矢印の個数という。型 をもつ閉じた項(自由変数をもたない項)が少なくとも 1 つ存在するとき、 は住人をもつという。矢印の個数がちょうど である型のうち、住人をもつものの個数を求めよ。
を正の整数とする。座標平面上で、原点 から点 まで、1 歩ごとに または だけ進む経路のうち、途中で 座標が一度も負にならないものを考える(このような経路をディック経路という)。ディック経路 に対し、 が通る点 で を満たすものの個数を とする( 軸に戻る回数。終点 も数える)。
とおく。ただし、和は長さ のディック経路 すべてにわたってとる。 を の式で表せ。
この技能の次に学べること
- 単純型付けと型の数え上げ (大学院数学 計算理論・ラムダ計算)