mod13スピード

そろそろ今話題のmod13スピードについて書くことにしよう。wikipediaによると数学オリンピックの合宿の参加者により開発されたらしい。ルールとテクニックについては、灘校数学部のサイトに掲載されている。このPDFファイルを読めばだいたいわかるが、スピードという2人用トランプゲームを拡張したものである。

ルール

通常のスピードと同様に、互いに4枚ずつ場札を表にして用意し、2枚の台札を真ん中に用意する。便宜上左の台札を台札A、右の台札を台札Bとしておこう。通常のスピードでは、(台札Aの数+1)or(台札Aの数ー1)を台札Aの上に場札から出せる。台札Bについても同様だ。
しかしこのゲームの開発者は、何を思ったか台札Aと台札Bの数で四則演算をしたら面白いんじゃね?と考えてしまったようだ。和の場合、A=2、B=3ならどちらの台札の上にも5を出せるみたいに。こうして暗算を要求することにより、カード運と反射神経だけの単純なゲームが大きく進化した。ただここで一つ問題が生じる。13を超えたらどうするのか?1より小さいとどうするのか?分数は?というように、四則演算の結果が1〜13の整数ではない場合の対処である。このゲームの開発者は、ここでエレガントな解決策を思いついたらしい。mod13である。modulo(モジュロ)13、13を法とする、要は13で割った余りである。このカードゲームがmod13の世界で行われると仮定するのだ。この世界では1も14も27も40も-12も-25も、13で割った余りが1であるものは全て同じとみなされる。これで和、差、積に関して問題はクリアされたことは容易に分かる。ちなみにテクニックの一つとして、A=10、B=11で積を取るとき、せっせと110÷13の余りを出しても良いのだが、10×11=(-3)×(-2)=6とやった方が早い。
あとは商だ。A=2、B=3の場合、A÷B=2/3でできないとなってしまうが、この世界では2=15であるから、A÷B=15/3=5というふうに求められる。B÷A=3/2=16/2=8ということでB÷Aも計算可能。一見、商が無数に出てきそうだが、一意に定まることの証明がルールブックに掲載されている。このままでもできるが、もう一つテクニックが紹介されている。13の倍数を加えて割り算をするなんて面倒なことをしなくても、逆元を活用してもっとスピーディーに割り算をやろうじゃないかという話である。
2÷3を求めたいときに、1/3が何か分かっていれば2×(1/3)となるので簡単に計算できる。というわけで3に何をかけたら1になるか、すなわち3の逆元が何なのかわかると素晴らしい。27÷3=9より3の逆元は9。2÷3=2×(1/3)=2×9=18=5割り算を掛け算にできるとスピードはかなり上がる。ちなみに2の逆元は7なので3÷2=3×7=8
そんな感じで逆元のペアを求めていくと(2,7)(3,9)(4,10)(5,8)(6,11)となる。1と12はそれぞれ逆元が自分自身となる。13の逆元はない。

実際にやってみた感想

手元にトランプがあったので、id:shiumachiとこのゲームをやってみた。最初は、二人とも割り算とか無理だろと思いながらやり、頭の普段使わない部分を使いすぎた影響で二人とも頭痛に悩まされた。しかし、数日後に再びやると、二人とも逆元のペアを覚えており、最初の段階では想像できなかったスピードで処理するようになった。相手の場札を見ながらこっちに出せば相手が出せなくなる、みたいな判断も瞬時に行えるようになった。トランプを数学的に拡張するとこんなに面白くなるのかというのが率直な感想である。

x^2=-1 (mod13) の求め方を教えてください。

x^2=-1 (mod13) の求め方を教えてください。 - Yahoo!知恵袋

こんな問題に対してx+(1/x)=0だから逆元のペアで和が13になるのは(5,8)だけだろと思いつくようになってしまったらなかなかの重傷だと思う。虚数を導入したり、素数に着目したりして、面白そうなゲームができないかなと考える今日この頃である。