2012年02月02日

牌画

Webサイトが4周年を迎えた記念にというわけではないが、牌画のコンテンツをアップロードした。たぶん無料で手に入るものとしては最も大きいサイズだと思う。



2011年05月24日

整数除算の仕様比較

プログラムを組んでいて嵌まったので、メモしておく。

整数除算の仕様
言語Python
4 / 311
4 % 311
(-4) / 3-2-1
(-4) % 32-1
4 / (-3)-2-1
4 % (-3)-21
(-4) / (-3)11
(-4) % (-3)-1-1

具体的には Java で組んでいて Python と同じように書いて嵌まったのだが、使ったことのある他の言語 (Visual Basic, C++) も Java と同じ仕様だった。 数学的には Python の仕様が最も正しいだろう。



2011年02月04日

Webページ更新

Webページに新しい記事「卓組問題」を掲載し、これまでの考察から得られた結果の一部をまとめた。



2011年01月28日

卓組問題: 3プレイヤー8チーム7ラウンドの解

3プレイヤー8チーム (6テーブル) 7ラウンドの完全解 (全てのオポーネントとちょうど1回同卓する解) を見つけた。 前の記事に結果のみをコメントしたが、独立した記事にしておくことにする。 個人戦における6テーブル7ラウンドの卓組としても有用と考えられるから、また、前稿の説明を補足したいからだ。

まず、チーム間の対戦を以下のように定める。

チーム番号とラウンド番号とのビット単位ANDをとり、結果の各ビットをXORして0または1を得る。

表1: ビット単位AND
AND:XOR 000001010011100101110111
000 000:0000:0000:0000:0000:0000:0000:0000:0
001 000:0001:1000:0001:1000:0001:1000:0001:1
010 000:0000:0010:1010:1000:0000:0010:1010:1
011 000:0001:1010:1011:0000:0001:1010:1011:0
100 000:0000:0000:0000:0100:1100:1100:1100:1
101 000:0001:1000:0001:1100:1101:0100:1101:0
110 000:0000:0010:1010:1100:1100:1110:0110:0
111 000:0001:1010:1011:0100:1101:0110:0111:1

この値が同じチームがそれぞれ3つの卓へ各1名のプレイヤーを出して同時に対戦する。

More...

2011年01月06日

8ペア4卓の卓組問題: 7ラウンドの解

8ペア4卓の卓組について面白い解を見つけたので記録しておく。 ラウンド数は1から7, ペア番号は0から7, 卓番号は0から3, プレイヤー番号はペア番号の2倍に0または1をたしたものであるとする。

各ペアは各ラウンドにおいて、ラウンド数とペア番号のビット単位ANDをとり、結果を二進法で表した際に1であるビットの数と偶奇が等しい卓でプレイする。

各プレイヤーは各ラウンドにおいて、ラウンド番号から1を引き、定数 (2, 3, 4, 5 のいずれかに大会を通じて固定する) 倍して7で割った余り F とペア番号のビット単位ANDをとり、結果を二進法で表した際に1であるビットの数と、プレイヤー番号と卓番との差との偶奇が等しいような卓でプレイする。

具体的な卓組は以下の通りである。 斜線の左側に書かれた番号のペアは偶数番目の卓でプレイする。 斜線の右側に書かれた番号のペアは「小さいプレイヤー番号のプレイヤーが小さい卓番号の卓で」プレイする。 より対称性の高い方法として、1回戦目の「ペア内卓組」にオプション (0の代わりに7とビット単位ANDをとる方法) を用意した。

  • 0246/01234567[0356]
  • 0145/0145
  • 0347/0123
  • 0123/0167
  • 0257/0246
  • 0167/0347
  • 0356/0257

この構成により、全てのプレイヤーが、パートナーとはプレイせず、自分たち以外のペアのうち片方と1回ずつプレイし、もう片方と2回ずつプレイすることができる。



2010年08月10日

大会対戦表プログラム (8)

これまでの記事で作ってきたプログラムは一般人数チーム戦の卓組を行う。 個人は1人チームと考えることができるから、当然、このプログラムは個人戦にも応用が可能だ。 チーム人数 {1, ..., 1} (1の個数は人数) を入力してやればよい。

しかしチーム間の対戦が「できるだけ」一様になるというのは、チーム人数が少ない場合には必ずしも再同卓を避ける結果にならない。 例えば、16個人5ラウンドの解は広く知られている。 しかし、1人16チーム5ラウンドの対戦をランダムに生成すると卓番号と座位を含めずラウンドの順序を含めて (C[15,3]C[11,3]C[7,3]C[3,3])^5 = 1,2526,1303,3102,8547,9403,7170,4101,5625 通りが考えられるが、そのうち正しい解は同様の条件では 5!(C[15,3]C[12,3]C[9,3]C[6,3]C[3,3]/5!)2(3!)^4 = 4358,9145,6000 通りしか存在しない。 したがって、ランダムに生成したチーム卓組を用いて個人卓組を行う方法は現実的ではない。

個人戦には再同卓の回避を優先として卓組を生成するオプションが必要だ。 そこでは以下の理由により、チーム戦の完成時に行ったシャッフルによる高速化が必要になるだろう:

More...

告知: 華人鳳民公開対局

魔女blogにて公開対局の告知があったので、勝手に翻訳する。 訳の正確さは保証しない。

More...

2010年08月08日

火拼麻将

火拼麻将を大雑把に翻訳してみる。

More...

2010年08月07日

二人麻将

二人麻将も翻訳しようと思ったが、ほとんど日本麻雀だったからやめておく。



哈爾浜麻将

哈爾浜麻将も大雑把に翻訳してみる。 私事だが、祖母は戦中ハルビンにいたらしい。

概要

哈爾浜麻将は哈爾浜地区で流行している麻雀ルールを元にしたローカルルールで、とても地方の特色を有しており、とても面白いルールの1つである。

More...

About

我打麻将

我打麻将の研究ノート

  • 各種ルールによって行われる麻雀の研究記録ブログです。
  • 研究課題や未知のルールは常に探しております。
  • 研究課題、未知と思われるルールを考え付いた・どこかで見た方は、e-mail またはコメントにてご連絡ください。

Sponsor

  • 当ブログの牌画は「雀のお宿」百貫雀氏によるものをフォーマット変更の上、利用しています。2次(実質3次)利用などは、氏の「雀のお宿」にて示されているガイドラインに従ってください。
QR Code
QRコード
  • ライブドアブログ