FC2ブログ

*All archives* |  *Admin*

<<09  2018/10  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 31  11>>
理牌をするための必要並べ替え回数
今日はちょっとした小ネタを思いついたので、Pythonの練習がてらにやってみました。

リアル麻雀で、普通に山から4枚ずつ取ってくるのでも、自動配牌卓でもどちらでもいいですけど、
配牌を取ってくると普通は牌の順番がばらばらなんで理牌する必要がありますよね。

理牌をするための牌の入れ替え回数って平均で何回くらいなんだろう?というのが今回のテーマです。

並べ替えの法則は以下の通りとします。

①13枚の配牌をランダムに取る。
②左側にソート済みの手牌、右側に未ソートの手牌を置く。
③左からi(i=2~13まで繰り返し)番目の牌について、ソート済み手牌の右端の牌より牌番号(マンズ1~9、ピンズ10~18、ソーズ19~27、字牌28~34。赤牌は区別しないものとする。)が小さい場合、ソート済み手牌の中の適切な場所に左からi番目の牌を移し、入れ替え回数を+1する。ソート済み手牌の右端の牌と同じ牌か牌番号が大きい場合はそのままの順番で合ってるので、次のi+1番目の牌の比較へと移る。
④ ①~③を10万回繰り返し、各シナリオの牌の入れ替え回数を記録する。

だいぶ原始的なソート方法です。専門用語で〇〇ソートとかいう名称がついてるんでしょうけど、詳細は知らないです。

ソースコードはこんな感じ↓。
181020-05.txt

結果はこんな感じ↓。
181020-04.png

平均値は9~10回くらいの並べ替え回数になってます。めんどくさいですね。

熟練者だと色とか昇順降順を変えるとかで、もっと並べ替え回数の少ない方法があったりするんでしょうけど、私レベルではよくわからないです。

今日の結論:自動理牌のあるネット麻雀は神。
スポンサーサイト



はじめてのpython&Tensorflowその6・手役情報と複数回畳み込み計算
前回(はじめてのpython&Tensorflowその5・ドラや役牌などの情報追加)から、

・畳み込み計算のフィルター枚数を32枚→64枚へと倍化。
・2次元畳み込み計算後全牌連結前に1次元畳み込み計算を2回はさむのを追加。
・手役関連情報(一色手限定シャンテン数、トイトイ限定シャンテン数、タンヤオ限定シャンテン数、チャンタ限定シャンテン数、三色一通に足りるパーツの数)の追加

モデルの構造↓
181020-01.png

損失関数・正解率↓
181020-02.png

手牌との突合せ↓
181020-03.png

入力内容やパラメータの数が増えてステップあたり学習時間は増えたが、それに見合った効果が得られているかどうかはだいぶあやしい。

次は自分副露時とリーチ宣言まわりをどうやるかを考えましょうかね。
プロフィール

nisi5028

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

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

この人とブロともになる

QRコード
QRコード