*All archives* |  *Admin*

<<10  2017/11  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30  12>>
聴牌打牌と放銃率
ツイッターで聴牌打牌で放銃率が上がる現象について調べてくれ、という質問があったので、今回はそれを調べてみます。

牌譜解析の集計条件は、
・自分以外の3人のうち一人がリーチしている(他二人はリーチでなければ他の状態は問わない)
・自分は聴牌している。
・自分が牌を切った時に分母にプラス1、そのときにロンの声がかかった(立直者以外からのロンも含む)時に分子にプラス1
・分類は巡目と牌区分(対象は一人いる立直者に対して)と自分が前巡の段階ですでに聴牌しているか否か

結果がこちら。
170509-01.png
全部の牌トータルで見ると、前巡で既に聴牌している場合より、前巡は不聴(つまり聴牌打牌)の場合の方が放銃率はやや高い傾向にあるようです。
なので、張った瞬間に当たり牌になりやすいというのはある意味正しいです。

しかし、それぞれの牌の区分ごとで言うとすでに聴牌のケースも聴牌打牌のケースもほとんど変わらないので、
同じ無筋同士なら、特別聴牌打牌の方が当たりやすいとは言えないです。

おそらくは、聴牌打牌の方がリーチ者の無筋(危険牌)になってるケースが多い(全体から見た割合が多い)ため、個々では放銃率が変わらなくても、トータルでの放銃率が上がる、とかそんな感じでしょうか。

このテーマはこんなところにして、後は雑談。

1週間くらい前から1日1問ツイッターで押し引きを中心に何切る問題を出して、シミュレーション結果を正解として出していますが、そこそこ好評いただいているようです。フォロワー数も順調に伸びつつあります。
まぁ、見た目地味な研究よりはみんな実際の何切るの方が好きなんだろうなーとは思います。(別にそれが悪いと言いたいわけではないです。)
でも、今シミュレーション結果が手軽に出せるのも、基礎研究の積み上げのたまものなので、まぁそういう背景もあるということでひとつ。

後は(シミュレーション結果を正答としたときの)みなさんの正解率がかなり高いのはすごいですね。こちらとしては多数派とシミュレーション結果が一致しているということはそれなりにみなさんの感覚と適合しているということだと思うので、一安心です。

今問題の正答用に使っている局収支シミュレーションだとある程度の制約があります。
・基本的に二向聴以上の手はできない。
・変化を考えるのは少し手間がかかる。(日1で次々出題することを考えると、あまり手間はかけたくない)
・他家の打点はかなり大雑把(赤ドラの所在は考えてるけど、表ドラは平均のパラメータの中に全部押し込めてる。)
・聴牌気配の濃さ薄さ(特にダマテン)についてはあまり考えられない。(これも平均値そのまま。)
こういう制約に引っかからないような状況を問題として選んでいます。
次世代のシミュレータができたらこういう制約(特に前者2点)はなくなって、作問の幅と質が大幅に広がるのですが、やるには頑張って基礎研究しないといけないですね。
基礎研究の間はブログの記事は単調になりがちですが、その分を毎日の何切る出題で補えばまぁ研究サボってる感はあまりでないかなーとか思ってます。(むしろ両方ともやるので相当頑張ってる方。まぁ何切るの方は出来合いのシミュレータにパパッと入力値放り込んで10秒くらい待つだけなんでそっちはそんなに難しくない。むしろペイントとかエクセルで加工する方が時間かかるくらい。)

後はちょっと前までは技術的な問題でfloodgate for mahjongに接続することができなかったのですが、その問題がクリアできて無事接続できたので、もうそろそろAI作り(≒次世代シミュレータ)に取り掛かろうかなーと思って、今日ひさしぶりにプログラムを開いて、コードをちょっといじりました。
スタックオーバーフローのエラー回避のために全体的にコードを書きなおさないといけないのですが、まぁ宣言している変数の数が無駄に多いこと多いこと。スタックの自己管理のためにほとんどすべての変数をまるごとスタックに詰め込んでは取り出しての繰り返し、みたいな感じでとっても大変です。
スタックの自己管理にあたって、私にとっては新技術となるクラスの宣言というのをやっています。今まで自作クラスを全く作らずにやってきたというのもある意味すごい話だけど、今回そこは避けて通れなさそうです。まだ作りかけだけど、その部分がうまくいくかどうかが気が気でないです。またどうせ、大量のバグ祭りになるんだろうなぁと思うとちょっとゆううつ。

クラスの宣言と言えば、floodgate for mahjongのツモ切りプレイヤーのサンプルプログラムを見て活用しようとしたけど、たくさんのクラスとかコンストラクタ?みたいなのとかポインタ?とか、わたしのおつむではわかりませんのー、みたいな感じで撤退したりとか。まじでプログラミングスキル低いわーみたいなのですね。他の人が作った高尚なプログラムが理解できず、自作のおもちゃしか扱えないかわいそうな子です。

自作のおもちゃと言えば、(たぶん)高速シャンテン計算関数(笑)とか公開したら誰か使う人いるかな?
AI製作にあたってグローバル変数を極力使わないで、単純に引数渡しの戻り値返しの単純なシャンテン計算関数はできてるから一応、その部分だけ切り取ってお見せするとかはできるけど。まぁ、手牌とか鳴き牌とかのパラメータ指定の方法がくせがあるだろうから、他の人は使いにくい可能性はかなり大きいけど。
まぁ、たまにはスキルの自慢もしてみたい(プログラミングスキル低いわーと言ったとたんこの発言なので、とても支離滅裂感あるけど。)のと、将来の麻雀研究者が参入してきやすいみたいな高尚っぽい名目も添えて。たまには麻雀界に貢献?でもしてみようか。めっちゃ上から目線だけど。

ぐだぐだ書くのはこの辺にしておきましょう。では今回はこんなところで。
スポンサーサイト

コメントの投稿

Secret
(非公開コメント受付中)

コメント

プロフィール

nisi5028

Author:nisi5028
FC2ブログへようこそ!

最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
FC2カウンター
フリーエリア
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QRコード