Parking Function の数は (n+1)^{n-1}
Parking Function、 駐車関数、木
Parking Function
台の車() が順番に駐車場に入ってくる。駐車スペースは個 () ある。
1番目の車から順番に駐車する。 番目の車は駐車スペース に停めようとする ()。このとき、空いていない場合は 、それでも空いていない場合は と次々に隣に停めようとする。
駐車スペース も空いていない場合は駐車することができず、(ほかの場所が空いていたとしても)失敗する。どこかに駐車した場合、次の車が入ってくる。
数列 について、 台すべての車が駐車できる場合、数列を Parking Function と呼ぶ。
問題
長さ の Parking Function は何通りあるか求めよ。
例
3通り。
答え
Parking Function の個数を とすると、。
上記の問題の代わりに駐車スペースが円形に並んだような問題を考える。
駐車スペース を追加して考える。このとき Parking Function とは限らない数列は を満たす 通りが考えられる。
車は駐車スペース にも停めようとする。さらに、駐車スペース が空いていない場合は駐車スペース に戻って停めようとし、空いていない場合は と同様に停めようとする場合を考える。
この場合であれば全ての車が駐車することができ、最後には駐車スペースが一箇所だけ空いている。
の数列に対して最後に空く駐車スペースは が均等に現れ、それぞれ 通り。そして「最後に が空いている」ことと「 は Parking Function」は同値である。
よって元の問題の答えは 。
ケイリーの公式 (Cayley's formula)
頂点のラベル付き木構造の数は であり (ケイリーの公式)、Parking Function と一致する。なので1対1で対応させるようなアルゴリズムの1つを書く。
終わりに
次の2つの内、1つでも満たすような数列も Parking Function である。
- 任意の非負整数を加算することを任意の回数行うことで、 の置換を得ることができる
- ソートし得られた数列 について、任意の において が成り立つ
以下は全て 通りある。
- 長さ の Parking Function の数
- 頂点のラベル付き木の数
- 頂点の辺ラベル付き根付き木の数
- 頂点のラベル付き根付き森の数
辺ラベル付き根付き木はアルゴリズムで0を根とすれば得られる。
根付き森はアルゴリズムで得られた木の頂点 0 を取り除くことで得られる。
そのほかの については A000272 - OEIS。
参考文献
- Richard P. Stanley, A Survey of Parking Functions (slide:http://www-math.mit.edu/~rstan/transparencies/parking3.pdf)
- Philippe Chassaing, Jean-François Marckert, Parking functions, empirical processes, and the width of rooted labeled trees