このブログ内を検索可能

2022年1月21日金曜日

DDでSPが入賞する確率

 いずれ全体のPOを求めるときに前半と後半別のSP入賞確率が必要なので求めておいた。一部は手で計算したが、やはりプログラミングに回した。

とりあえず前半SP0球は1771/3276、SP1球は1050/3276、SP2球は380/3276、SP3球は75/3276である。なので2%少しで前半でSPが3球入るということになる。

この値は、それぞれのSPn球でのPO率が出てきたときにチェックする。例えばそれぞれが適当に50%,75%,100%,125%と仮定するとそれぞれが起こる確率が上記の通りなので、

0.5*(1771/3276)+0.75*(1050/3276)+…となる。これにより全体のPO率を求める…がそれはまた後の話で、これより先にSP1球が入った場合の後半でSPが0,1,2球(3球はない。なぜなら最大3球で回収されるので)の確率を求める。

実際これも計算されており、例えばSP1球の場合、後半SP0球の確率は765/1050,SP1球は240/1050,2球は45/1050となっている。

そしてSP1球の場合は25C6通りあり、DDの前半のビンゴは順不同であることより組み合わせと考えてよく、その確率が同様に確からしいのは耳鳴ではなく自明なので前半SP1球、後半SP0球ならば765/1050を25C6で割ればよい。

例えば{1,2,3,4,5,6,7}{9,10,11,12}という風に前半、後半が分かれるのは、

前半で7球になる確率は380/3276、そこから後半4球は先ほどの状態が起こったとすると60/380なので60/3276である。後半4球は全部で{8,9,10,11}から{22,23,24,25}のパターンが存在し、これは前半で入った7球を抜いて18球から4つを選ぶので18C4。

ゆえにそれが起こる確率は60/(3276*18C4)となる。そしてそれこそが我々が個別に求めているオッズが起こる確率となるので、それにかけてその総和により最終的に期待値を求めるということが成立する。

これを以降も同様にしていくと、ちょっと楽に計算ができることになるが…このようなことをやっている傍らでも、180度回転一致を入れてもまだ進捗度7905/53130。

これを1~25C6、1~25C7,1~25C8についてもやらねばならない。これを終えてようやく1パターン目の解析が終了する。そら誰もやらんわ…。

がしかしビンゴバルーンの最適解をFREE4個まではじき出した我としては当然この未知の領域にも侵食を考えている。

ここの記事で考察したことはもはや我の膨大に時間がかかる解析を簡単にするための一つの道具でしか過ぎない。

なにしろSPを入れて28個のボールについて前半と後半が可変でその組み合わせ同士を愚直に確かめていくなど嫌な予感しかしないからである。

ここまで工夫を凝らしてもあとこのカードパターンだけでまだまだかかりそうや…。

DD解析で回転同値を導入する

 やはり180°回転による同一パターンにより、およそ1/2くらいにやるべき行程が減るのは大きい、ということでそのプログラムを作成しようと思った。

DDのビンゴカードは180度回転させると必ず自身に一致するようなカードばかりである。

つまり、例で言うと{1,2,3,9,13}マス目に入った時は3グループ目、すなわち{4,5}マス目にFREEを1個配置するものが最適でこのときPO率32.1769%であるのだが、これを180度回転させたときの組{13,17,23,24,25}においても即座に適用したい。PO率のデータはそのまま引用すればよいが、このグループ{3}をどのように組{13,17,23,24,25}に適応するか。

とりあえず思いついた手法としては、グループの180度回転対応表を作るか、普通にいろいろな関数で変換していくかだろう。

グループ{3}を該当マスに変換するマスの集合eqvから[[1,1]]を抽出すればそのうちの一つ目である④マス目、つまり{4}が出現する。その{4}は180度回転により{22}に移る。これは26-(マス)という一次関数で表せる。そして得たマス{22}からグループに変換する関数(作成済)により{18}というグループを返す。これにより最適解はグループ{18}となりそれを格納し大変な総当たりの処理を省く。

{13,17,23,24,25}は180度回転は先ほど言ったように26-xで行けるので、ベクトルとみて{26,26,26,26,26}-{13,17,23,24,25}={13,9,3,2,1}となり、これを昇順にソートする関数は組みこまれているので{1,2,3,9,13}となる。

今日はもう遅いので明日に回そうと思う。