このブログ内を検索可能

2021年9月29日水曜日

FREE3個時PO率解析修正

FREE3個の場合で最適解を変更しなければならないかもしれないパターンは一体どれなのか考える。{2,4,3,6,8,11,13,15,18,20,23}{5,17,3,6,8,11,13,15,18,20,23}{9,21,3,6,8,11,13,15,18,20,23}{22,24,3,6,8,11,13,15,18,20,23}のいずれかの集合に、8球分のパターン「+」3回分のFREEが一致していればよい。

なお上にあげた4パターンは、田の字型の3個ライン6つに、あとは可能な残り1ラインが4パターンあるので、4つの集合となっている。

最初の{2,4,3,6,8,11,13,15,18,20,23}で考えてみる。FREE3個を任意に配置できる、という条件より、この11個の要素の中から5個の要素が2nd終了までに入れば、一応可能性としては、残り6個の要素にシンキングでFREEを3つかぶせて、その後確率1/1140で残り3つを当てることができる。このわずか少しの変化でも最適解が変わる可能性がある。

さて、11C5=462通りであり、これが4パターンあるのでおよそ1800通りとなるが、その中にはかぶりがある。2つ目の集合の場合{3,6,8,11,13}などはすでに1つ目の集合で計算されている。よって、2~4つ目の集合において、各集合の部分集合であるという条件に加え、{3,6,8,11,13,15,18,20,23}の部分集合であってはならないという制約が課される。

ここで議論していても実感がわかないと思うので、実際にプログラムを組んでみたほうが良いだろう。

If内は先ほどの通り、修正される可能性のあるiを特定している。プログラムの簡略化上、上記制約条件と少々異なるものにしておいた。

for(j部分)は、普通に全フリーパターンを探索している。
一応工夫として、例えばFREE3個の時、もし8球分とFREEの配置したマスの和集合をとって10個の要素になれば、かぶりはないものとしてオッズアップはない。しかし9個になれば、どこかで1マスかぶっておりこれが虹バルーンとなっている。よって最終オッズに2を掛ける必要がある。またこの和集合の長さはFREE配置個数に依存するため、上記プログラムでもkosuuという変数によってその乗算具合がちがうのがみてとれる。
例えばFREE4個で和集合が8ならば、本来は12個分あるはず、ということで3個のかぶり、すなわち5倍のオッズアップ。プログラムを見てみると、Lengthが9の場合、kosuu+1となっており、ちゃんと5倍と扱われているのがわかる。
なおすでに各8,9,10,11,12マス配置の場合の基本配当データはすでに先に計算させてある、記憶によるとこれだけでも1000万個のデータを持つ。

余談だが、実際に修正すべきパターンがいくつあるかを計算すると…。
上のプログラムで、if内にcount+=1を投入して直ちに1470通りとわかった。
なお実はこれ、中学や高校でよくある問題としても帰着できる。
各4つの集合において、11C5=462パターン存在するが、その中で固定9個から5個を選ぶというパターンは全部において共通である。これは9C5=126。
つまり、各要素においてこの9個から5個を選ぶもの以外という独自の要素が、462-126=336通りあることになる。よって全体としては、和集合をとるわけなので、
4つの集合に共通の1個(=126)と、残り336通りが4つで、126+336*4=1470となり、
プログラムの計算に一致する。

とりあえずこれで53130通りが1470通りに抑えられるので楽。
なお回転移動などで一致する奴は、今回はややこしくなるのでなしにしている。