今日の配牌(30年分)

私の戦闘力は530000です

このnoteを読む人全員が、ドラゴンボールを読んでる前提で話を進めます。友人に「ドラゴンボールで好きなのはどの辺り?」と聞くと、「ナメック星編かな」と返ってきました。僕も同じです。ナメック星編は、かなり人気だと思われます。
フリーザ様が魅力的なのもありますが、多くのキャラクターが登場するのも人気の要因だと思います。そして重要な事は、「たくさんのキャラが出てきても強さがなんとなく分かる」ということ。ナメック星編の鍵は、戦闘力を数値化するスカウターの存在ではないでしょうか。

配牌を数値化したい

麻雀の手牌をなんとか数値化できないものだろうか?もしスカウターのように優劣が判断できるものが作れればいいのですが、とてもじゃないが私には無理。すなわち「手牌スカウター作成」は「麻雀AIを作る」ということと同義になるからです。とてもじゃないが私には無理。大事なことなので2回繰り返しました。
ただ、別のアプローチからの数値化なら、なんとかなるか・・・な?

最強武将は誰?

またまた突然ですが、KOEIの「三国志」や「信長の野望」が好きです。さて「最強武将は誰ですか?」って聞かれたら、どう答えましょう?呂布かもしれないし諸葛亮かもしれない。能力の平均値でいえば、趙雲や関羽の名前が上がるでしょうか。個人的には陸遜や姜維が好きですが、人それぞれの好きなポイントがあっていいと思うのです。

子龍一身これ胆なり

手牌も同じような数値化はできないかな~。速度やドラ、手役などの複数項目で数値化してみようじゃないか、と。で、どういう数値の手牌が自分の好みに合ってるかどうかは、各々の判断にお任せ、って感じで。
とりあえず、速度の数値化にチャレンジしてみよう。


向聴値

向聴値(シャンテンち)っていう言葉を作ってみました。言葉を勝手に作ったということは、その定義も勝手に決めていいと思うんですよね。
作った目的について。速度を表す指標の一つに向聴数があります。でも、整数なので、全部で7段階しかありません。優秀な3向聴もあれば劣悪な3向聴もあります。少しでもその優劣を数値化できないものか?というつもりで考えてみました。

【向聴数が上がる有効牌の枚数】÷【まだ見えていない牌の総数】
=【有効牌率】

↑の式で【有効牌率】を計算します。向聴数は数字が少ない方が優秀なので(1-有効牌率)として「少ない方が優秀」な値にします。

向聴数+(1-有効牌率)
=【向聴値】

ということで、以上が向聴値の求め方です。はい、無理やりです。

問題点

「向聴戻し」や、「向聴数が変わらないけど受けが広くなる」といった部分は考慮されていません。例えば5ブロックの形。

手牌A
手牌B

AもBも「3m147p受け」の2向聴なのは変わりません。でもAの場合、47sにくっつけば、向聴数はそのままで受けが広がります。くっつきが重なりしかないBの手牌の方が、少しだけAより劣ります。しかし前述の計算方法では、その差が結果に出ることはありません。本当に申し訳ありませんが、細かいところの計算はめんどくさいし時間がかかるので妥協します。
それでも、まぁまぁ面白い結果が出たので、もう少しお付き合い下さい。以下、結果発表。。。

今日の配牌(30年分)

1万回配牌を取って向聴や向聴値を計算するプログラムを作成しました。以下はその結果です。

向聴値上位陣
テンパイしていたケースが2回ありました。
シャンポンと単騎待ち。気合をいれて自模りたいところです。
3向聴と4向聴の境界
七対子も絡むので大差はない気がします。
ただ、3向聴の上位と下位では雲泥の差がありました。
残念配牌
見てるだけで悲しくなります。
分布表

6向聴って、1向聴に匹敵するレアケースなんだなー。トイツがあれば、とりあえず七対子の5向聴だもんなー。
ということで、↓この1万回ガチャを引いた結果(スプレッドシート)です。

あとがき

ガチャプログラムはpythonで書きました。今日初めて触ったプログラム言語です。pythonには麻雀用ライブラリがあるのを知っていたので、いつか扱ってみたかったのです。伸ばし伸ばしになってましたが、少し時間が作れたので「やってみよう」と。
まさか1日でここまでできると思ってなかったです。本当は夕方から麻雀打ちに行きたかった。でも、新しい言語に触れるのは楽しいので、ついつい没頭してしまいました。もうちょっと色々勉強しないとダメですね。最近は小説家もどきのnoteばっかりだったし、今のところ速度だけだし。

読んでいただき、ありがとうございました。いつかあなたと同卓できますように。

この記事が気に入ったらサポートをしてみませんか?