対リーチイーシャンテンのシミュレータができました

以下説明
--------------------------
色が付いているのは状況によって値が変わる値など自分で入力するとこ。
①理論値の算出時に使ったとこ
②各確率を拾うとこ
「横移動率」「他家ツモ率」「他家テンパイ率」はまだ考慮しないけど今後のために作って置いた。
現段階では他家はベタオリ(振らないし和了しない)しているものとする。
③順目によって変わる値
「安牌枚数」はその順目で何枚の安牌があるかの理論値
実際合ってるかあやしいけど多分合ってる。多分。
一応計算式のせとく↓
=前順の安牌枚数+(136-前順の安牌枚数)*3/136
(1順目の安牌枚数は3)
「安牌率」は安牌枚数から次順安牌を引く確率を出して2倍したもの
※なぜ2倍かというと、理論値ではリーチ者のみがランダムに牌を切って増えた安牌だけを出したもので、実際はスジ、カベ、字牌、他家の切る牌とかも考えると2倍くらいにはしていーんじゃね?という調整です。でも実際安牌率を2倍にしたところで2倍にしない場合と比べても50点くらいしか変わんなかった。
「テンパイ期待値」は以前出した対リーチ判断テンパイ編から算出したもの
イーシャンテンの状態なら入り目によって愚形になるか良形になるかもあるので分けといた。
よってテンパイ期待値は
愚形率×愚形テンパイ期待値+良形率×良形期待値
になる。
やろうと思えば高めテンパイか安めテンパイかも分けれると思う。
④VBAのシミュレータで拾うとこ
左に書いてある事象が、1なら起こる0なら起こらないということ。
1になる確率は②から拾う。
VBAで放銃するかどうかから始めて下に読み込んで行き、最後安牌を引いた場合は次の順目のリーチ者がツモるかどうかから読んでいく。
読んでいって最初に起こった事象のときの点数収支をシミュレート欄に書きこんでいく。
⑤シミュレート結果
回数は調整できるけど多くすると計算時間がかかるんで1000回にしといた
「合計」はシミュレート結果の合計で「期待値」がシミュレート結果の合計を回数で割ったものになる。
シミュレートの流れとしては前の記事でいった理論値算出時と同じでこんな感じになる

--------------------------
これグラフにするには変数が多すぎてどう軸をとったらいいかわかんないね
とりあえずこんな
8順目ドラ6p

自分:子 リーチ者:子
牌姿で8mがスジ(4%危険牌)、8sが無スジ(10%危険牌)でスジを切ってシャンテン維持する場合をシミュレートする。
テンパイしたらリーチする前提だと和了時の期待値は約6080点になり、10%危険牌を切ってリーチする場合の期待値を「テンパイ期待値」のセルに入れてシミュレートすると
期待値は約-1150点で8順目ベタオリ期待値-1200点と同じ程度ということが分かった。
この条件で同じ程度ということは、これを基準にしてこの状況より悪い状況ならオリ、良い状況なら攻めるという判断が可能になる。
例えば余剰牌が両方とも無スジもしくはドラ・ドラそば、一発目とかならオリ、逆に余剰牌が安牌、ある程度ドラが見えているとかなら攻めるとか。
対人判断とかでなんか愚形っぽい、安そう(悩んでリーチ、安手愚形リーチが多い人のリーチ)とかでもいいかもしれない。
・誤差について
自分の手の手変わり
持っている余剰牌が安牌になる場合(もしくは危険牌になる場合)
については考慮していない
他家2人についてはベタオリする前提だけど他家が押している場合で横移動率が上がったとしてもそれはベタオリ期待値とシャンテン期待値双方にほぼ同程度影響してくるので判断自体にそこまで影響しないと思う。
でも他家がすでにテンパイもしくはシャンテン維持中にテンパイする場合は影響するのか?その場合どちらの判断に傾くんだろう→今後の課題
このシミュレートだと流局について考慮していないように思うけど考慮していないのは最後まで安牌を引き続けて流局した場合のみでよほど終盤でなければ無視できるくらいの確率。
今後はこのシミュレータ使って実戦譜から検討していくと押し引きの感覚がつかめるかもしれない
いやーしかし・・・
現実逃避エネルギーってすごいな