全プロセスの詳細解説
-
3 シンボルのウィンドウ(50 シンボルのストリーム上をスライド) 6 ステップ
A, B, C, D の4文字から50個の記号のストリームが生成され、その上を3記号のウィンドウがスライドする。これがパネルの「長さ 50、ウィンドウ 3」の状態である。それらのウィンドウのうち、すでに登場したパターンを示すものは平均して何個存在するか。その個数を導出し、重複が発生する確率が五分五分を超える最短のストリームを求めよ。
-
他のものを数える前に、まずウィンドウの数を数える。3記号のウィンドウは位置 1 から始まり、48 までのすべての位置から始まることができる。49 から始めると末尾からはみ出してしまうからである。これにより 48 個のウィンドウが得られ、この 48 はパネル上のすべての重複カウントが報告される分母となる。
-
次に、それらのパターンとしてあり得るものを数える。3つのスロットにそれぞれ4つの文字が入るため、64通りのパターンが存在する。パターン数よりもウィンドウ数の方が少ないため、必然的に重複が発生するわけではない — ここでは鳩ノ巣原理は何の結論ももたらさず、起こる事象はすべて確率によるものである。
-
問いを裏返して、特定のパターン、たとえば ABD に注目します。一つの窓が ABD でない確率は 63/64 です。パネルで期待値を求めたときと同じく、48 個の窓を独立な試行として扱うと、どの窓にも ABD が現れない確率は (63/64)48 = 0.4696。したがって、ABD が少なくとも一度現れる確率は 1 − 0.4696 = 0.5304 です。
-
その 0.5304 という値はすべてのパターンについて等しく当てはまる確率であるため、これに64すべてのパターン数を掛けることで、ストリームに実際に含まれる異なるパターンの期待値が得られる。
-
ある窓が重複となるのは、そのパターンがすでに現れている場合に限ります。つまり、実際に現れた各パターンには、重複ではない窓がちょうど一つずつあります。窓の総数から異なるパターンの数を引けば、重複する窓の数が求まります。
-
もう1つのアプローチは、なぜ答えがこれほど大きくなるのかを説明する。パターンについて尋ねる代わりに、ウィンドウのペアについて考える。任意の2つのウィンドウが同じ3つの記号を持つ確率は 1/64 であり、考慮すべきペアは 1128 通り存在する。
解答
48 個の窓のうち、重複する窓の期待値は 14.05 個です。一致する組の期待値が 17.6 組もある以上、これは惜しい程度の差ではありません。 組の数から逆算して、重複が起こる確率が初めて半分を超える位置を求めましょう。平均が λ の計数では、値がゼロとなる確率は e^(−λ) であり、λ = ln 2 のときにちょうど半分を下回ります。そこで一致する組の期待値を ln 2 とおけば、必要なのはわずか 10 個の窓、すなわち 12 個の記号からなる列です。これは、誕生日が 365 通りではなく 64 通りになった誕生日のパラドックスです。50 個の記号からなる列に重複があっても、何かを示す兆候ではなく、むしろ当然予想される水準だと分かります。ただし、隣り合う窓は 3 個の記号のうち 2 個を共有するため、どちらの数え方で仮定したような独立な試行ではありません。実際に確率が半分を超える境目は、記号一つ分ほど先になります。
-
参考文献 (1)
- Insight block 3 — why AAAA clumps and ABCD does not: L. J. Guibas and A. M. Odlyzko, "String overlaps, pattern matching, and nontransitive games." Journal of Combinatorial Theory, Series A 30(2), 183–208, 1981 — the correlation polynomial that measures how a pattern overlaps a shifted copy of itself.