注意: 生成される文字列についてのネタバレを含みます。
注意: 2022/07/14 現在のアルゴリズムです。
排出確率は約 0.2% です。
i
番目の文字を決定するときに、 i
番目の文字に近い文字を選びやすくなるようになっている。
数学的に言うと i
を中心とする分散 1,5 の正規乱数により i
番目の文字を決定している。
i
番目の文字の生起確率の確率密度分布を示したものが図1である。
例えば1文字目の生起確率は青色の曲線に示されており、「パ」の出現確率が一番高いことがわかる。 なお、範囲外の乱数が生成された場合は再抽選されるため、該当の文字の出現確率は端の方が高くなる。
この分布を離散化する際に、絶対値の切り捨てを行っている。
すなわち
「ー」の文字について離散化を行った後の確率分布を図2に示す。
もとの正規乱数の確率密度関数が緑で示されているのに対し、各文字の正規確率の離散分布が青色で示されている。 なお、もとの正規乱数の確率密度関数は再抽選を考慮した後の値である。
さらに「ン」が選択され、その前の2文字が「ーマ」または「ッタ」の場合一定確率で「ソ」に置き換わるようになっている。
いくつかあるパターンの中から、「大学」が最も高い確率で選択されるようになっている。
数学的には自由度1のカイ二乗分布のスケールを
1文字目を例として考える。
「パ」の選択の際に生成した乱数を確率変数
同様に考えると、
計算結果の
0 | 0.662 |
1 | 0.545 |
2 | 0.507 |
3 | 0.497 |
4 | 0.495 |
5 | 0.497 |
6 | 0.507 |
7 | 0.545 |
8 | 0.662 |
次に、各文字が「ソ」へ変化しない確率は
以上より、「パワーマンハッタン」が生起する確率は
すなわち 0.24% 程度である。
「大学」の生起確率は「ソ」に変化しない確率と同じである。
したがって、「パワーマンハッタン大学」の生起確率は
1000000 回生成して文字ごとの出現確率を調べた。
結果は ./test-log.txt に記されている。注意すべき点として、「ン」は「パワーマンハッタン大学」の中に複数含まれているため、生起確率はその合計値が記されている。
これを見ると、計算した生起確率と結果が一致していることがわかる。