0:00 ヒーリングタイムで都電荒川線の映像に朦朧としてきて飛鳥山あたりで寝る。

8:00 前に起床することに成功。納豆とレーズンロールを食って外出まで時間つぶし。

長い清一色手牌から順子を見つける理屈がよくわからない。 残りカスがある条件を満たさなければ、その組み合わせは無効というものがあるようだ。 例えば 234567845623, 78 と見る人はいない。

発想を変える。順子は 123, 234, … 789 の 7 通りしかない。 だからそこから重複を許して 4 つ取る組み合わせを先にテーブルにしておいて照合させるか。 この組み合わせの数は 210 通りある(おとといの日記を参照)。

待てよ。もう刻子も混ぜて 4 面子の照合をしていいのでは? こんなことを考えていたら 11:00 を過ぎた。外出する。

まず久しぶりにひきふね図書館に赴く。入口で早々に体温検査が待ち構えている。 中の様子は人が少ない。窓際席が間引き、ベンチが椅子に置き換わっている、 閲覧室が閉鎖されているなどの変化がある。 朝日新聞、産経新聞、中学数学 2 を読んで退館。

次に八広図書館に移動。だいたい予想通りの対応がなされている。 窓が開けられていて当図書館名物のキンキンの冷房が堪能できないのは想定が甘かった。 東京新聞、週刊新潮、週刊文春、月刊小説新潮、月刊 I/O をチェックして退館。

業平に戻る。14:25 ビッグエー墨田業平店。234 円。

  • ハムマヨパン
  • スコーンやみつきバーベキュー
  • コッペパンジャム&マーガリン

柳島児童遊園で水を汲んで、団地一階通路前の環状ベンチでおやつ休憩。 そのあと 15:00 横川コミュニティー会館図書室を利用。ふたたびの確率統計下巻に突入。

確率論の高校生くらい向けの教科書を読むと問題集が付いている。 すると、出題者は麻雀を題材にしたいのではないかなという問題をチラホラと見かける。 麻雀を知らない受験者に対する状況説明があまりにも面倒なので、カードとか玉で安易に代用しているフシがある。

16:30 タイトー F ステーションオリナス錦糸町店で遊ぶ。 ビートマニアに 1 クレ。CPU としか戦っていないのに B4 に上がる。

MJ 幻球乱舞東風に 3 クレ。トップラス麻雀で球の変動はほぼなし。大崩しないだけでも満足だ。

18:05 カスミオリナス錦糸町店。486 円。

  • 八宝菜丼
  • 冷やしそば

18:30 ビッグエー墨田業平店。18:30 シュークリーム一個のみ。ひどい客だ。

18:45 向島の部屋に戻る。日本年金機構からおなじみの郵便物が届く。週明けに納付免除手続きだ。 水浴びをしてケロロ軍曹を観て晩飯にする。

20:00 電話ボックスへ移動。暑い。 Twitter で古代祐三先生が Last Wave を演奏されているのが気になる。ここでは聴けない。

隅田公園経由で部屋に戻って入浴。

21:05 風呂から出る。室内が暑い。麻雀コードを続ける。 同一色の数牌からなるテンパイ形がテストに必要になるので、思いつきでテストデータ生成関数を書く。

23:50 麻雀の練習をして換気扇を止めて寝る。

Programming Notes

同一色の数牌からなる門前の手牌をランダムに生じる関数の実装案を次に示す。

from itertools import chain
from random import sample

# the 36 tiles of the same suit
_tiles36 = tuple(chain.from_iterable(range(1, 10) for _ in range(4)))


def random_flush_hand(num=13):
    """Return a list of random numbers.

    >>> num = 13
    >>> numbers = random_flush_hand(num)
    >>> len(numbers) == num
    True
    >>> all(isinstance(i, int) for i in numbers)
    True
    >>> all(1 <= i <= 9 for i in numbers)
    True
    >>> any(numbers.count(i) > 5 for i in range(1, 10))
    False
    """

    return sample(_tiles36, num)