目次
1. はじめに
2. 65536 通りの中に観測される先頭 2 手のパターンの頻度
3. 2 手目までのツモは、甘口のツモである
4. シャッフルが十分でなく、初期状態の影響が残っている
5. 「特定の 1 色が来なくなりやすい」なんてことはない
6. 終わりに
1. はじめに
ぷよスポのツモの偏りについてはちょくちょく議論がされていますね。
これについての重要な記事として、低頭ちゃんさんの
[1]
ぷよスポの配ぷよ
[2]
セガぷよの配ぷよデータを公開してみました
があります。発表時に大いに話題となったので、ご存知の方が多いと思います。
これらの記事で、低頭ちゃんさんはマジありさんのツイートスレッド
[3]
https://twitter.com/maziari1105/status/1121038277996269570
で明らかにされているアルゴリズムをもとに、20th 以降のぷよぷよで共通して使われていると思われる 65536 通りの配ぷよパターンを生成し、公開しています。
実際にゲーム中で発生した配ぷよパターンがこの 65536 通りの配ぷよパターンの中にあるものに一致することも確認されています(私自身ももちろん何パターンか確認しました)。
逆にこの 65536 通りの中に含まれない配ぷよパターンが実際のゲーム中で発生したという例は私の知る限りでは報告されていません。
このことから、実際にゲーム中で発生する配ぷよパターンがこの 65536 通りから選ばれているという説は多くのぷよらーに信じられているものと私は認識しています。
さて、界隈で信憑性が持たれていて公開もされているこの配ぷよパターンですが、案外詳細については認識が共有されていないのではないかと思いました。
そこで本記事では [2] の配ぷよパターンが持っている特徴を、基づいている [3] のアルゴリズムを見ながら明らかにしていきたいと思います。
本記事でこれから行う議論は、「65536 パターンの選ばれ方に偏りがあるか」とか「選ばれ方がタイトル間で異なるか」という疑問を取り扱うものではありません。
(これについて、本記事執筆中に低頭ちゃんさんが新たな
記事を公開され、ぷよクロとぷよスポでの同一配ぷよの出現頻度から考えて両者の配ぷよが同じ 65536 通りから一様独立に選ばれていそうだという判断の根拠を述べられています。)
[3] をもとに生成され [2] で公開された配ぷよパターンについて特徴とその原因を調べよう。というのが目的となります。
言ってしまえば、「既に公開されているものをちゃんと読んでみました。その結果自分は正しい認識を持っていなかったことがわかったので共有しておこうと思いました。」というだけの記事です。
既に [2] [3] を十分理解されている方にとって新しい情報はありません(実際多くを既に低頭ちゃんさんが言及済みです)。
(1) 「ゲーム中の配ぷよパターンは [2] の 65536 通りの配ぷよパターンから選ばれ、65536 通りから実際にゲーム中でどの一つが選ばれるのも同様に確からしい」
という仮定が必要な話をするときはその旨明示します。
((1) が正しいということは証明されていないため慎重な言い方をしていますが、積極的に疑う理由も出されていません。)
2. 65536 通りの中に観測される先頭 2 手のパターンの頻度
何はともあれ、65536 通りの先頭 2 手のパターンを数え上げてみましょう。
最初に出てきた色を A, 次に出てきた違う色を B, とするような、普通に使われる記法にしています。
a は軸と子の区別あり、b はなしです。
実戦上は区別がほぼ必要ないので b も掲載しましたが、これから行う偏りについての議論においては区別に意味があります。
初手がゾロの確率は、c より 31.8% くらいです。1/3 よりちょっと小さいくらい。
わざわざこれを記事のタイトルにしたのは、自分がなんとなく 1/4 だと思っていたからです。
ABCD パターンを排除するための仕組みについて深く考えていないと 1/4 だと思ってしまう。
これが実際は 1/3 くらいとなる理由について次節以降で見ていきます。
なお (1) の仮定を信じるのであれば、
ゲーム中で起きる現象としてはこのテーブルが全てです。理屈など知る必要は全くない。
以下では、このテーブル中に見られる偏りについて理屈を説明していきます。
ぷよぷよの戦略上は全く役に立たない話なので、ご興味のある方のみお進みください。
3. 2 手目までのツモは、甘口のツモである
[3] より、私たちが通常扱う中辛の 4 色の配色パターンの生成方法は、大まかには以下のようになります(細かくは後で)。
(疑似乱数の生成式には問題がないものと仮定します。)
(4 つの異なる色をそれぞれ 0, 1, 2, 3 と表します。)
- 長さ 256 の配列を 01230123... のように初期化(配列の先頭から順に 2 個ずつが 1 つの組ぷよとして使われる)
- 配列をシャッフルする
- 先頭 4 つを甘口のツモの先頭 4 つで上書きする(これにより 2 手目までが 3 色以下となる)
つまり
2 手目までのツモは、甘口のアルゴリズムで生成されたツモそのものであると言えます。
甘口の場合は配列の初期化が 012012... となるだけで他は同じです。
すなわち、ごく単純に考えれば各枠の色は 3 色から均等な確率で選ばれると期待されるので、
初手ゾロの確率は 1/3 となると考えられます(1 個目の色は 3 色のうちのどれでもよく、2 個目は 1 個目と同じ色だから 1/3)。
ちょっと脇道に逸れますと、
中辛のツモの 128 手において、4 色の出現回数は 64 個ずつで均等になっていると思っていた方もいらっしゃると思いますが、これらのことから均等になっていないことがわかります。
2 手目までが甘口ツモで上書きされる前は均等ですが、上書きされることで崩れます(たまたま均等のままになるケースももちろんあります)。
128 手の中に現れる各色は最小 60、最大 68 となります。
甘口ツモで上書きされる前は赤赤赤赤だったが上書きされて緑緑緑緑になった、のようなパターンが最も大きなずれを生じるもので、
赤が 60 個で緑が 68 個、他の 2 色が 64 個ずつとなります。
さておき、1/3 つまり 33.33...% に収束すると期待される値が、65536 個もの値から算出して 31.8% になるというのは、誤差としては大きすぎます。
(99% 信頼区間が 1/3 ± 0.00475 くらい)
また、3 色が均等に選ばれるという仮定のもとでは、テーブル 1 に列挙した ABC 表記の各パターンの予測値は、
AAAA だけ 1/27(≒ 3.7%) で残りの 13 通りは 2/27 (≒ 7.4%) となります。
それにしては ABBB の 6.37% から ABCA の 9.25% と、随分ばらけています。
このズレが生じる原因について知るために、[3] をもう少し読み込んでみます。
4. シャッフルが十分でなく、初期状態の影響が残っている
前の節で述べた通り、2 手目までのツモは甘口のアルゴリズムで生成されたツモそのものですので、
甘口ツモの生成方法を見ていきます。
[3] で記述されている内容は文字ではちょっとわかりにくいと思いますので、図にしてみました。
中途半端になってしまったこの図で果たしてわかりやすくなったのか自分でも疑問ですが、進んでいきましょう。
2 手目までのツモが含まれるブロック 1(と、末尾であるブロック 16) は、他と比べて交換回数が半分しかありません。
1 回目のループで 8 回、2 回目のループで 16 回、3 回目のループで 32 回。
これを踏まえて、ブロック 1 に含まれるある 1 枠が、最後まで一度も交換されない確率を求めてみます。
ここで求めるのは「一度交換はされたけど交換相手が同じ数値だった」「複数回交換されて最初と同じに戻った」というパターンは含まず、
純粋に一度も交換されない確率です。
1 回目のループにおける各ステップで、ある 1 枠が交換の対象とならない確率は 1-1/16 で 15/16
よって 1 回目のループが終わるまでにその 1 枠が一度も交換されない確率は (15/16)^8
同様に 2 回目のループでは (31/32)^16
3 回目のループでは (63/64)^32
よって最後まで一度も交換されない確率は、これらを掛けて(15/16)^8 * (31/32)^16 * (63/64)^32 ≒ 0.2169
21.69% と、結構残りますね。
これ以外の 78.31% は、一度以上交換される確率です。
一度以上交換されるとなるともはや初期状態は関係なくなり、78.31% を三等分した確率がそれぞれ終了状態の 0, 1, 2 に割り当てられます。
つまり、例えば初期状態が 0 ならば、
終了状態が 0 の確率は 0.2169+0.7831/3=0.4779
終了状態が 1 の確率と 2 の確率はいずれも 0.7831/3 = 0.261
となります。
(ここは厳密ではありません。0, 1, 2 の出現頻度は等しくなく、
256 枠全体において、0 は 86 個、1 と 2 は 85 個。
局所的に見ても、初期状態において、ブロック 1 には 0 が 1 個多く、ブロック 2 には 1 が 1 個多い。
といったわずかな偏りがあります。特に後者は結構影響があるかも。)
21.69% の確率で一度も交換されずに初期状態のまま残る、という結果が出たわけですが、
理想的なシャッフルを目指すならばこの確率は 0 に近づくべきです(単純にシャッフルの回数を増やすだけで 0 に近づけることができます)。
それが 21.69% も残っていることは、初期状態が終了状態に影響を与えることを示唆し、
テーブル 1 で見た奇妙なズレの原因はここにあると考えられます。
4 枠目までの初期状態 0120 は ABCA に相当しますから、テーブル 1 で ABCA が ABAC とかより大きいのは初期状態のまま残っていることが影響していると考えられるわけです。
要するに
ABCA から多くの交換回数を必要とするものほど出にくくなるわけですね。
交換の回数がブロック 1 の 2 倍であるほかのブロック(末尾であるブロック 16 を除く)では、
1 枠が最後まで交換されない確率は 21.69% の 2 乗で 4.7% くらいになります。
だいぶ減るけどまだ少し残る感じですね。
さて、2 手目までについて実際に各終了状態の現れる確率を求めてみようと思いますが、
各枠の状態は独立ではなく、例えば終了状態で 1 ~ 4 枠目が 0000 となる確率を、
各枠ひとつひとつが 0 となる確率の積として求めることはできません。
(例えば、1 ループ目の 1 回の交換ステップで 16 枠が 1 つも交換されない確率は厳密に 0 であり、(15/16)^16 ではないですよね。
16 枠の中から必ずどれか 1 つが選ばれるのであって、16 枠の一つ一つについて交換されるかされないかを 1/16 で決めているのではない。)
が、ズレが生じるのを承知のうえで、強引に各枠が独立であると仮定し強行突破してみます。
こんな感じのテーブルを作ります。終了状態 81 パターンぶん全部載せると長いので抜粋にしちゃいました。
"終了状態"の各列は 1 ~ 4 枠目の終了状態。
"各枠の確率"の各列は、個々の枠についてその終了状態となる確率で、上で説明した値です。
"4 枠の確率"列は、独立であるという強引な仮定のもと"各枠の確率"列の掛け算をして、その終了状態になる確率を求めました。
最後に終了状態の ABC 表記を示しました。
あとは ABC 表記ごとに和を取ると、こんな感じになります。観測値はテーブル 1 から取ってきた値です。
強引な仮定のせいで、まだ少しズレがあります。
例えば AAAA が観測値より大きいですね。
0000 の場合で考えると、1 ~ 3 枠目が 0 であると既に決まっている条件があるときに 4 枠目も 0 である確率は、
その条件がないときに 0 である確率より小さくなりますよね。その条件があるときは既に 0 が 3 つも固定されてしまっているので。
今回の計算では、独立であるという強引な仮定によってこれを無視してしまっている結果、値を過大評価してしまっているわけです。
本当はもっと厳密に予測値を計算して、観測値とこの予測値の間のズレをカイ二乗検定して有意差なし!となれば、
めでたく(?)乱数生成に問題がないことが評価できるわけですが。
今回は大まかには予測値が観測値と一致したことから、
初期状態の影響が残っている結果として「各枠に各色が 1/3」という予想からずれるんだということを感覚的に理解できたということでおしまいにします。
5. 「特定の 1 色が来なくなりやすい」なんてことはない
ここまでは 2 手目までのツモの色の偏りを調べるために、甘口のツモの先頭部分を検証してきました。
では中辛のツモの、3 手目以降の偏りはどうでしょうか。
「シャッフルが不十分であるために初期状態の影響がいくらか残る」という主張は、甘口のツモでの議論と同様に言い得ます。
結果として、初期状態 0 1 2 3 0 1 2 3 ... から離れているものほど出にくくなるはずです。
これはつまり、[2] の配ぷよパターンは
完全にランダムなパターンと比べて、究極に偏りの少ない状態(どこの 4 つを取っても各色が 1 個ずつ!)にちょっとだけ近いということですので、
特定の色が来にくくなる傾向があるとかいう結論にはどうやってもなりません。むしろ逆です。
以下はもうただの確認ですが、せっかくですからいくつかの数値を見てみましょう。
予想される傾向として、ゾロの頻度が少しだけ 1/4 より小さくなるというのがあります。初期状態にはゾロがないですからね。
さらに、この傾向は 3 ~ 8 手目までよりも 9 手目以降で軽減される、つまり 1/4 により近くなると予想されます。
交換の回数が 8 手目までより多くなりランダム性が向上するためです。
数えてみました。
9 手目以降については 120 手目まで数えてもいいんですが、実用上関係がありそうな 60 手目までで打ち切っています。
サンプル数としては十分すぎるくらいだというのと、「実戦に関係ない部分の影響が強いのでは!?」とか難癖をつけられるのを避けるためです。
はい。大小関係については予想通りですね。
9 手目以降についても思った以上に初期状態の影響が残っているという印象を受けました(もっと 0.25 に近いだろうと思っていた)。
そうは言っても、0.25 であるべき確率が 0.244 であるという差でしかないですが。
さらに、ある色を引いてから次にその色を引くまでの手数の分布を調べてみましょう。
全色 1/4 の確率で現れるならば、1 つのツモがある 1 色を含む確率は 7/16 なので、
あるツモを引いてから n 手あとに初めてある色が来る確率は (9/16)^(n-1)(7/16) です。幾何分布ですね。
これに基づく予測値を実測値と並べてみました。実測値はこれも 9 ~ 60 手目からの値です。
右側は左側の累積値です。
完全にランダムだったら 5 手以内に欲しい色が引ける確率は 94.4% しかないのに、実際のツモでは 94.6% もあるんですね!
だいぶあれになってきたのでもうやめにしましょう。
6. 終わりに
ぷよクロのときにりべさんは、肝心なときに発火色を引けないようにプレイヤーが感じる現象について、
ご自身のブログで他のぷよぷよタイトルとの比較から説明されていました。
ぷよぷよクロニクルは何故”引けない”のか? - live のブログ『清濁のるつぼ』
私自身も認知バイアスによるものだと思っており、配ぷよパターンが偏るような機構が存在することには懐疑的でした。
今回の検証で、(1) の仮定のもとでは、特定の一色が来ないとかいうことが不当なレベルでは起こっていなさそうなのを示せたので一応満足です。
また、初手 2 手は甘口のツモであるという、
知っている人はとっくに知っていたであろう事実を知らなかったのはちょっと反省でした。
自分以外にも知らなかったという方はいると思うので、この記事で正しい認識を共有できれば幸いです。
一連の作業は私にとって、ぷよスポのレートに潜ったりするよりはずっと楽しかったです。
だってぷよぷよ、発火色引けなくて負けるんだもん。
お後がよろしいようで。