openpgp4fpr:B2E1DC9AF16599BD2D873A227BABC58075EC4EE6
興味: Haskell, 数学
F_{n+1} = (3*n - 2)*C(n-1)
だそうです。少なくともn=15ぐらいまでは合っています。
長さn+1の語はちょうどC(n)個あり、カタラン数はC(n)=2(2n-1)/(n+1)*C(n-1)という関係が成り立つので、(もし上記の式が正しければ)F_{n+1}/C(n) ~ (3/4)n + O(1/n) となり、ランダムな語に対する最小コストの期待値は語の長さの3/4に漸近することがわかります。
F_{n+1} = (3*n - 2)*C(n-1)
だそうです。少なくともn=15ぐらいまでは合っています。
長さn+1の語はちょうどC(n)個あり、カタラン数はC(n)=2(2n-1)/(n+1)*C(n-1)という関係が成り立つので、(もし上記の式が正しければ)F_{n+1}/C(n) ~ (3/4)n + O(1/n) となり、ランダムな語に対する最小コストの期待値は語の長さの3/4に漸近することがわかります。
f(-)を、語Xに対してXの最短表記のコストf(X)を与える関数とします。長さがnの語 X の語すべてにわたるf(X)の合計をF_nと書くとき、数列 F_n がわかればf(X)の平均も得られます。プログラムで列挙して計算してみたところ次のようになりました。
n: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
F_n: 0, 1, 4, 14, 50, 182, 672, 2508, 9438, 35750
f(-)を、語Xに対してXの最短表記のコストf(X)を与える関数とします。長さがnの語 X の語すべてにわたるf(X)の合計をF_nと書くとき、数列 F_n がわかればf(X)の平均も得られます。プログラムで列挙して計算してみたところ次のようになりました。
n: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
F_n: 0, 1, 4, 14, 50, 182, 672, 2508, 9438, 35750
長さnの語をドット"."や括弧"{}"を使って文字列表記したとき、その文字列の長さからnを引いた値(つまり、文字列に含まれる`.`,`{`,`}`の数)をその表記の_コスト_と呼ぶことにします。例えば、最初に例に挙げた"..x.yz.zx"は、長さ5の語に対するコスト4の表記です。
長さnの語をドット"."や括弧"{}"を使って文字列表記したとき、その文字列の長さからnを引いた値(つまり、文字列に含まれる`.`,`{`,`}`の数)をその表記の_コスト_と呼ぶことにします。例えば、最初に例に挙げた"..x.yz.zx"は、長さ5の語に対するコスト4の表記です。
です
です