このブログ内を検索可能

2022年1月31日月曜日

DDの別のビンゴ解析法

 今度はよりパターンを減らしてプログラミングに理論を混ぜ込んで行う方法を考える。最適解の配置を求めたいため、やはり5つ組~8つ組のパターンを個別に考えることは健在。

あとできるかはわからないが自作デュエルドリームとかも作れるのではないかと思っている。

幸いベネクス大和が配信台を準備してくれており、eパスを失った(故意)我がやるはずはもちろんないのだが、他人の配信の画像を切り抜いて自作DDを作成しても良いかもと思っている。こちらはかつて制作した自作アニマロッタに比べれば演出も少なく、作成しやすいのではないかと思っている。そして自宅で自作DDで遊ぶという常人では考えられない遊びを考えている(そもそもそんな面倒なことをする我自体の方がおかしいのだが)

しかしまだ試験が控えているのでしばらくは大人しく勉強してその後いよいよ動き出すかもしれない。…が以前の自作アニマロッタは時間のあったときに1年近くかけてやったのでそれを考慮するとこれも相当の時間がかかることが予想される。

まあとにかくはビンゴの新しい解析を思いつくことである。それが分かればおまかせ配置にも適用できるのである。

具体的にはn球終了時の時点でのマスのIN情報とそこから到達できるすべての最終パターンとの「差」を、現在のオッズアップ個数とFREE使用可能個数から分類し、そのFREE使用可能個数における確率と期待値を順次足していき、最後にどの配置が期待値が高いかを算出しようと思っている。こうすれば計算によりオッズアップはどこに入っても同じ、いちいちビンゴかどうかを計算する必要もなくなり多少は楽になると思っている。

なにしろ最低8パターンは完全に違うものが存在するため、そのままでは1年くらいかかってしまいそうだからである。おまけに常にPCは排気音状態で熱くなっているので。

組織学の試験が終わればとうとうこれに本格的に着手することができるが、ちょっとは球形を挟みたいのでおでかけしたい。…が体調がどうなるかわからないのでそれも当日決めることである。

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}となる。

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

2022年1月19日水曜日

DD解析進捗状況

 同一グループの引用を行ったおかげでより素早く最適解を探索できるようになった。

このように各数字(マス)パターンに対して最適解と期待値をどんどん計算できるようになった。ちなみにここに見えているパターンは1.0を割っているので長いことやっていると負けるパターンばかりである。その理由は、1,2がグループでひとまとまりなのでいわば無駄うちしてしまっているという状態だからである。

これができ次第、最初が6球、7球、8球のものについても同様に行う。
それで初めて1つのカードパターンが終了する。これはそこそこ時間がかかる…が、さっきまでの総当たりに比べてこれでもたぶん20倍くらいの速度向上だと思う。

DDの最適配置は他にも解析している人物がいたりするが、我とその人との関係は全くないので一応言っておく。ただ似たようなベクトルをもった者だとは認識している。




2022年1月18日火曜日

UFOキャッチャーの性質

 DD解析の待ち時間を利用してちょっとUFOキャッチャーの話をする。ドラクエが好きなのでそのフィギュアを入手しようとUFOキャッチャーをやることがあるが…。

今の時代ならおそらくだいたいの人が知っていると思うが、所定の金額を投入するとほぼ確実にとれるようになっているのがUFOキャッチャーである。

ただしイオンモールやモーリーファンタジーの中にはそもそも取れる状態になっていない(アームのMAXの力が景品の重さに及んでいない状態)場所もあり、その場合は5000円どころか10000円、15000円を超えても延々ととれる気配はない。その場合店員はUFOキャッチャーの部分を触って(これで設定額が来ているか即座にチェックできるものと思われる)我々の「設定金額を超えていることをにおわせる発言」が嘘ではないと判断した場合は、そのアームで取れない状態でも取れるように景品を出口ぎりぎりにおいて取れる状態に常にしてくれ続ける。(さすがに今の時代動画などで拡散されるとまずいため)

このような店舗を3つくらい発見したがゲームセンター系列以外の(セガ、ナムコ、タイトー、ラウンドワンなど以外)場所ではその傾向が強いので注意。

ちなみにビッグクリアフィギュアを狙っていたが15000円でも取れないパターンが2回ほどあった。これらはどちらもイオンモール。ただイオンモールの中にもちゃんと設定金額で(=3000円周辺で)とれるようにしてくれている良心設定店もある。これ以上犠牲者を増やさないために行っておくとイオンモール大日とイオンモール熱田は15000円をかけても取れなかった。店員に10000円費やした(本当)といっても対応してもらえなかったが、さすがに15000円以上延々とやって都度店員にいうとようやく別の店員が対応してくれた。つまりビッグクリアフィギュア2体で少なくとも30000円は余裕で費やしている。

あとでよく見たら口コミにもクレーンゲームはひどすぎると複数アカウントで書かれていた。なるほどその通りだと思った。

なお基本的にこれらのフィギュアが取れるのは3000円程度で、3500円を超えだすともう一生取れないと思った方が良い。店員にアシストしてもらえなければ一生とれないことが確定する。(道行く人が我がやっているとこれ全然とれへんで、みたいなことを言うのが聞こえたのでここによく来る人はその絶対にとれない設定を知っているらしい)

それでも入手した景品(15000~18000円)が傷ついていたりしたら変えてくれたり袋をもってきてくれたりする店員もいたのでやはりイオンモールなどでは店員によって態度が違うと思われる。イオンモールのフィギュア2体で30000円を軽く超えてしまったのは悲しいが。

一方ゲームセンター系列(YAZ、アピナなどの共和コーポレーション系列)、ナムコ、タイトーなどの店舗はしっかりしており、ちゃんと設定金額でとれるようになっている。イオンやモーリーファンタジーは要注意。ベネクス系列、ドラマ系列、イミグランデ系列にもあるがやっていないので知らない。

余談だが、UFOキャッチャーの動きには複数個ある。

①つかんだ後頂上で離す

②つかんだ後しばらく保持するが移動開始時に離す

③つかんだ後移動中も保持するがゴール前で離す

④上に行く前に落とす

こういった動きをすることがほとんどで、③はひょっとすると、と思うかもしれないが、これは景品が奥の方にあるときのみに起こってているのを経験で感じた。機械なので自身の位置は把握できるので、これだけ移動すればゴールというのもわかっているので途中で外すフラグを簡単に立てることができるわけである。

なお設定金額に達するとゴールに到達するまでがっちりつかんだまま2本爪ですら離さない模様。経験談だがそこでつかむのを失敗しても以後はずっと取れる状態のままである。

④は、景品の重さに対してアームの力が最大でも持てない恐れがあるため、これは危険。

15000円以上、すなわちいくら金をかけてもとれないパターンはこれに当てはまる。

ただひょっとすると設定金額に達するとアームが最初から滑るのが治るかもしれないが、あまり期待できない。

後はたまたま予期せぬ幸運が発生した場合、他の人がつぎ込んでいた場合はそれより早く取れることがあるということくらいで、中古店などには設定金額の1/3程度で並ぶことが多いが、人気商品は設定金額とほぼ同程度(ドラクエのクリアフィギュア系統なら3000円周辺)か、過去のバージョンだと2倍くらいになったり、という感じである。


他にも糸をカットするゲームもあるが、これは我々の操作がかなりアバウトでも横移動はきちんとそろえるようになっており、縦操作はどれだけうまくやっても手前あるいは奥で止まって切れないようになっている。しかし設定金額が来ると、その周辺でボタンを離した場合毎回目的の位置に止まるようになっているというもの。

これはルーレットで⑤まで行くと景品がもらえるというファンシーリフターと同じ作戦を使っている。あれはプラスとマイナスが交互に並んでいるので、プレイヤーに「誤差の範囲で」マイナスに移動させることができるのである。

例えば+1,-1,+2,-2で並んでいるとする。

+1と-1の間で押せば普通に-1に到達

-1と+2の間で押せば+2を超えて-2に到達

+2と-2の間で押せば普通に-2に到達

とこのように「滑り」を利用してやりたい放題である。

なお我は昔はそれに気づかずやられていたものだった(幼稚園か小学生時代)。

1回くらいこれで300円?でうまい棒が大量に取れた回があったがそのうちの10個くらいはすでに賞味期限切れという。


ちなみに我が好きなプライズ、というかゲームは、かつてはアニマやDDであったがこれと永遠に決別してはや3か月。10年くらいやり続けたデータがあるeパスも完全に復元不能にしたのが功を奏した。普通に好きなゲームはドラクエ、マリオ、カービィなどで小学生時代からその性質はほぼ変わっていない。


処理時間の短縮案

DDのおまかせ最適化の処理時間をなんとか軽減できないか現在考えている。

鏡像、対称移動などは他のカードパターンで対応できないことが見込まれるのでなしとする。そこで最初の5球で同じグループに属するかを判定する方法があるのではないかと考えた。

たとえば{1,2,3,4,5}は{1,2}の部分を{1,3}{2,3}に、{4,5}の部分を{4,6}{5,6}に変えられることで他のパターンを短縮することができる。ちなみに最初からこれを考慮にいれたグループごとのパターンを考えても良かったが、それぞれの確率が異なって後で処理が面倒なため省略した。

たとえばグループ{1,2,3,4}といっても、カードの性質から{1}のところに2マス入っていたり、{3}のところに3マス入っていたり(SP1球が入った場合)などとこの{1,2,3,4}への写像が多すぎて困る。しかしマス(=番号と同意)の場合は単純にすべてのパターンの確率が等しいので処理しやすい。

これを実装した結果、全部で2429パターンだけで良いことが分かった。

ちなみにFREEの配置可能個数が違うものはもちろん最適解は違うので別物としている。

例えば{1,2,3,4,5}と{1,2,3,4,8}はINしたマスは同じであるが前者はFREE0個、後者はFREE1個なので異なるものとしている。

具体的には各マスのIN状況は入っている又はそうでないの2通りなので、これを2進数の考え方で10進数表記する。例えば1マス目からIN状況が1,0,0,1…のとき、

2^0*1+2^1*0+2^2*0+2^3*1+…となる。これは1対1対応なので、同じ表記に至る移動もとはない。あとはこれにFREEの個数を2^23あたりで規定する。

これによりidentityと名付けた10進数の値をそれぞれのカードは持つことになる。このidentity値が同じものは最適解が一致するので、過去に求めた最適解を使用できる。

そして2429パターンの計算という結果を得る。

これを行う手順は何気にちょっと行が多くなるが…。

一応カウンターを付けて必要な2429個をカウントするようにして実質推定時間もprintさせるようにしていよいよ稼働。これで大幅な時間短縮が見込めるのである。


一番上の列はそれぞれのマスのHIT状況を数値で表すものを重複なくならべていったものである。2つ目の列は1つ目の列で出てきたidentity値の場合は過去のどこの番号を参照すればよいかを示すもの。

3つ目の列はそれぞれの番号において参照すべき番号が記されている。ちなみに自分の番号と一致した場合はそれが自分で初めて出てくる、ということなので計算が必要。この条件に合致するものを53130通り調べると2429パターンとなった。



プログラムの整合性を確かめる

 とうとう真にプログラムの準備が整ったが、せっかくなのでその正当性を確かめるべく、ランダムにDDの結果を返すプログラムで、本当にその値に収束するかどうかを試したい。

やり方としては適当にSPなどの入り混じったボールデータをもってきて、それに従ってマスを埋めていく。これを延々と繰り返して理論値に収束していけば、きわめてこのプログラムの信ぴょう性は高くなるということである。

ということでランダムパターンを組み、そのランダム抽選を1000000回繰り返して理論値のPO率と比較した。なおパターンは{1,2,3,4,8}とし、最適解は{17}であったので(=23マス目)PO率は0.966639となる。

ちなみにSP0個、1個、2個、3個になる確率は理論値ではなくデュエルドリームの規則に則り、残り球数を判定して都度カウントしている。そして0になればこれ以上の抽選を打ち切り、というパターンにした。いわばさっき求めた確率の確認を行っているともいえる。

先ほど設定した確率の計算などがうまくいっていればこの値に近づくが果たして…?

以下は100万回に向けてそのPO率の平均(実測)をプロットしたものである。

1000000回の平均は0.968276となり、先ほどの理論値0.966639とわずか0.0015ほど(ペイアウト率0.15%)の差。これは誤差の範囲と見ることができるだろう。証明はしない。
さていよいよ53130通りを動かしていく。

DDにおける前半SP0個時の最適解について

 まだまだ解析途中だが、前半でSPが0球入った場合の最適解を探索中である。

とりあえず現在は後半SP0個、1個、2個、3個の場合で分けていると前記事で述べたが、そろそろそれらが起こる確率を考える必要がある。

簡単な例を挙げるとこうである。

1~6のさいころを入手できる確率が80%、1~10のさいころを入手できる確率が20%のときの期待値は?→0.8*3.5+0.2*5.5=2.8+1.1=3.9

現状、後半でSP0個と仮定しているので実際のゲームパターンと違うわけである。

{1,2,3,4,5}に対してもしSP0個のとき、{6,7}が期待値0.8,SP1個のとき{6,7}が期待値0.2

SP0個の時{7,8}が期待値0.7,SP1個のとき0.8だったとする。

SP0個が80%、SP1個が20%で起こると仮定すると

{6,7}の期待値は0.8*0.8+0.2*0.2=0.64+0.04=0.68が最終期待値

{7,8}の期待値は0.7*0.8+0.8*0.2=0.56+0.16=0.72が最終期待値

つまり、SP0個時の期待値の最大が必ずしも最適解を与えるとは限らないのである。

よって方針を変更し、それぞれに配置パターンで一挙に4球、5球、6球となるパターンも考えることにする。ただしここについては確率を求める必要があることに注意。

ということでちょっと高校の確率問題よろしく手で計算してみた。すると

SP0球→1140/1771

SP1球→459/1771

SP2球→144/1771

SP3球→28/1771

となることが判明。

これはどのように使うかというと、各FREEを配置したときに、

これまでは一律1140パターンのオッズを総和して最後に1140で割っていたが、

これが成立する理由は各パターンが1/1140で起こる(後半SP0個と仮定していたため)ので、

先に1140で割って総和をとっても全部分子のみ和をとってあとから1140で割っても同じだからである。具体的な例でいうと、2/5+3/5=0.4+0.6=1.0ではなく(2+3)/5=5/5=1ということ。有効数字についてはここでは深く考えない。

ここから、SP0球の場合はそれぞれのパターンは20C3あるので1140/1771を1140で割り、それぞれが起こる確率は1/1771である。各SPが起こる確率は同じでないので先ほどのように場合分けをしたが、その中での数の組み合わせは当然ながら等確率である。なので一つ一つあたりが1140で割れるのである。

SP1球の場合は、そもそも起こる確率が459/1771であるから、これになる数字のパターンは20球中4つを選ぶので20C4=4845パターンある。なので459/(4845*1771)の確率で例えば{1,2,3,4,5,6}などの組が選ばれることになる。

SP2球,3球も同様にする。

そして得られた個別の確率をオッズに乗じたものが期待値における個別のものである(なんかいい呼び方があるのだろうが期待値を高校で習っていない世代の我々)それを足し合わせる。

これにより完全に最初の5球に対しての最大の期待値が与えられることになる。

プログラムが間違ってないことを祈りたいが…。


2022年1月17日月曜日

デュエルドリーム解析手順

 現在、SPの個数が0個の場合で最適解検索を行っているが進捗率は7915/53130である。ただし配置可能FREE数に結構依存するのであと5倍くらいの時間がかかる、というわけではない。

一応以前やったように対称なものは反転などの操作で省略することもできるのだが、FREEや連結マスの関係上あまりそれが機能しない場合がある。またこれをやっても最大で8倍の短縮にしかならないので難しいところ。

しかしSP1個、2個、3個の方が明らかに時間がかかるので、SP0個に1日くらいかかっていると1個の段階で1週間とかのクラスになってもはや3個は手に負えないような気がしている。

ただまあ仕方ないと言えば仕方ない。なぜならアニマは25球中5球が抽選され、残りは3球であり、FREE配置は最大で4個だったが、こっちは25球5球抽選後、残り6球,5球,4球の場合もあるし、FREE配置も最大で5個(ほかの配置ではもっとある可能性)なので極めて危険な香りがする。

解析順序としてはまずはSP0個、ついでシンキングまでに6球入り、残り3球のパターンを行い、ついでシンキングまでに5球、後半4球入るというパターンを考える。たぶんここまでで数日はかかるとみている。

ビンゴバルーンではすべての抽選は交換可能であったが、こちらでは前半、後半の枠では交換可能(なので組み合わせ25C5を考えている)だが前半と後半は交換不可能。前半ではだぶってもオッズアップしないなどの仕様の差があるからである。ほかにもFREEにHITすると前半はオッズアップせずFREE配置が増えるが、後半はオッズアップのみするという点でも。

参考程度に現在得られているデータから最適解を配置してみる。

今考えているビンゴカードはこれ。

黄色がFREEでオレンジが連結マスである。

例えば7895番目は{1,8,12,14,15}の組がINした場合であるがこの場合の出力は

{7895,{1,8,12,14,15},{2,7,17},1.77544}

となっている。{1,8,12,14,15}がINした場合、以下のようになる。

赤色はシンキング終了後HIT扱いのマスである。厳密にはODDSUP対象マスと、もうHITしたマスの違いはあるがここでは省略する。これに対し、最適「グループ」は{2,7,17}とある。我は以下のようにグループ番号を付与している。

さて、ここに先ほど得た最適解を配置すると

このように2ラインが確定する。(オレンジ色は連結マスを意味するだけなのでHITしていない。勘違いしないように)

これは確かにほとんどの人がこのように3つのマスを配置するだろう。

そしてこの時の払い戻し率は177.544%である。

こういった最適解探索を全部で53130通り行うわけである。それで初めてSP0個の場合が完結する。

これはたのしくなってきたぞ




デュエルドリーム最適解構築開始

 いよいよ準備が整ったので、最適解を構築していくことにする。とりあえず最初の5球、6球、7球、8球と場合を分けて計算していく。最初が5,6,7,8球になる確率はそれぞれ違うがこのあたりは理論による計算か簡単なプログラミングでどうにかする。

その状態に対しての最適解を、残りの球数別に構築する。

例えば最初が7球ならばSPは2球入っているので、後の抽選球数は3または4に絞られる。

最初が8球ならばSPは3球入っているので残りは3球確定で計算が楽…ではなく、8球入るということは25C8通りあるので最初5球の25C5に比べてそっち側で処理を加える。ただその8球で、解の配置パターンが減少するのでその恩恵を若干受けることもあるが、いかんせんファクターが多すぎて予想時間を測るのは難しい。

とりあえず基礎である「5球抽選後、3球の抽選」というSP0球の場合での期待値を計算することをまずやっている。最初の方をずらっと見るとPO率は高くても80%程度で平均的に20%程度?と大赤字。これはSPが入らないうえ、最初の方はマス「1,2,〇,〇,〇」が多いので現在解析中のカードでは1,2,6は同グループなので早速重複が発生しているからである。言い換えると実質7球になっているも同然だからである。


最終的には「はじめーのこり」の球数を「5-3,5-4,5-5,5-6,6-3,6-4,6-5,7-3,7-4,8-3」で全て求め、それらが起こる確率を計算すればカード全体のPO率が算出され、かつすべてのパターンに対してPO率を最大化するパターンが得られる寸法である。


プログラム自体は半日弱で作れたがなんといっても解析が膨大に時間がかかるのが目に見えるのでその間は組織学の課題でもやるとする。今日は消化管となっており、その組織切片を観察して同定を英語でする必要がある…。楽しくないことはないが結構頭が疲れる。

オンライン講義だからこそできるこの時間配分。通勤電車等にエネルギーと時間をそがれないのでこれもまた良いと言えばよいのか…?

デュエルドリームで最適解に近づく

 先ほどの基本的な部分から、これを期待値化した。

これはとあるビンゴの配置の時にマスID[1,2,16,17,25]にINした場合、配置時のグループ番号が[m,n]のときの期待値を表している。

例えば[2,3]というのは2グループ目、3グループ目の配置を意味し、これはマスIDで3,4,5,10が埋まることになる。その場合の期待値は0.955877とPO率95.6%であることを意味する。

こうしてみていくと、[4,15]で最大値をとる。これはマスIDで7,19を埋めることを意味し、確定で3ラインを得られる。よって期待値のLINE数(左側)も3以上に必ずなり、さらにそれ以上のLINEも期待できる、ということが示されている。


なおこれは、FREE配置可能個数が2個で、残り球数が3個の時である。

この組み合わせはもちろんすべての場合において対応できるようにここまで作ってきた。

例えば前半5球が入り、後半でSP3球となって6球も残り入る場合かつFREEが1個配置できる場合は…、25C6通りも考えられるため先ほどより明らかに時間がかかる。

しかし7マス目または19マス目に配置した場合の期待値LINE数が同点で3.15085ライン、そして期待値は19マス目の方が高く、528.425%である。

これは前半がしょぼくてもFREEが1個配置でき、かつ後半にSPが3回も入れば5倍の配当が期待できるとなんとなく理にかなっているような気がする。

がここで雲行きが怪しくなるのは、FREEが5個使用できて後半6球抽選される場合などである。もちろん計算はできるのだが、各FREEの配置に対して8秒くらいかかるのである。

FREEは全部でとあるカードの場合17グループ考えられ、ここからFREEには配置できないことで12グループになるのだが、ここから5個選ぶということは12C5=792パターンあり、

この5球の入り方で、かつFREE配置可能数5個の場合ではこれだけで6400秒つまり2時間弱かかるという点である。

よってここからはもはやPCの処理速度と、それにかける時間との闘いである。

なおビンゴバルーンの解析をしたときも、PCを1か月間は休みなく回し続けた…。


さて次は、その5球の配置パターンや、前半で6球、7球、8球が抽選されたりなどの起こりうるパターンと、それに対応するFREE配置可能個数を算出したりする処理に入っていく。

たぶん期待値を求めるのはこれであっていると思うので…。


マスのHITおよびオッズアップ実装

 とりあえず前半で入ったマスのIDと、配置可能FREE個数、残り球数を与えるとそのそれぞれのパターンでオッズアップの倍率および最後のマスの状況を返すようになった。

とりあえずいろんなパターン(イレギュラーなものを積極的に選んだ)を試して5回くらいやって全部あっていたのでおそらくあっているであろう。

実はここまでくるとかなりうれしく、ビンゴ判定から基礎oddsを定義し、それにもう算出したoddsの倍率を乗じるとそれぞれのパターンでのoddsが計算できる。これはつまり各配置に対してすべてのパターンが分かるので期待値が分かる。すると期待値が分かるということは期待値同士での比較ができるということになり、最適解を得られる。

我の目的はビンゴ数を最大にすることではなく、PO率を最大化する、オッズアップなども考慮したものを考えているので通常のビンゴ最大化より面倒だが、なんとしてでもDDでプレイヤーが我が有利かを暴く。

ちなみに結果は一番下の段に出ている。1.6というのは残り3球がすでに入っているマスにHITしてオッズアップ+0.2が3回起きたということ、{22,23,24}というのは前半に入ったマスを除外した残りの球の辞書式配列の最後(forで繰り返した後なので最後の結果が出てきている)であり、その右がビンゴの判定に使うmassの状況で、0は未HIT、1はHITを表す。

もし演出付きでビンゴを作成するならもう少し場合分けをしなければいけないがここではそれは必要ない。

デュエルドリーム再開

 リモートとなったため、以前のように時間に余裕ができたうえ、体調も半年ほどかかってようやくなんかいい感じになっていた(戻る可能性ももちろんあり)のでデュエルドリームを再開する…といってももちろんプレイではなく、解析の方。

とりあえず当面の目標としては、ビンゴは勝てるのか勝てないのかという結論。

できればチップも含めてJPC、スーパーデュエルビンゴ込みで考えたいが…。

デュエルドリームは過去アニマのついでにプレイしていたが、例のeパス消去作戦により、我の10年のアニマデータおよびデュエルドリームデータは消滅したのでやはり決別以降プレイすらしていない。


まずどこから手を付けるか悩むが、とりあえずは、所定の場所にINしたときの配置と、残り配置可能個数から最適な配置場所を見つけるということである。

なお、すでにINあるいはFREEとなっているものについては、配置できないものとして考える(長らくプレイしていないし実機でそんなことをやったことがないので覚えていないがおそらくこれはかなり期待値が低くなるので最適解を求めるにあたり気にする必要はない)

具体的には、表のようなものを作り、ありえない場合のみを排除していく。

そして後からその表を参照し、計算なども使って確率を求めていく、というものである。

例えば上のような表を作り、黒部分は起こりえないパターンであり、試行回数を減らして処理の向上を図る。(SPは3球のため)

また、{1,2,3,4,5,6,7,8}という組は、間にSPが3個挟まっている(ただし6と7の間までしか入らないことに注意する)ので、その分同じ処理を減らすことができる。

これらの先のことを見据えてやっていきたいと思っている。