Corollaryは必然に。

このブログは「コロちゃんぬ」の提供でお送りします

行列式ビンゴをやろう!

事の始まりは2017年12月17日の(RT 0,いいね11の)ツイートでした。

このアイデアを練ったら…




こうなりました。

2018年8月11日に開催されたロマンティック数学ナイトで私が発表した迷作です。

ご存知ない方はぜひスライドの方をご一読ください。



「今年の迷作は今年のうちに」ということで、この記事では、ロマンティック数学ナイトで話しきれなかったことを書いていきます!

行列式ビンゴのおさらい

ビンゴ行列の定義

ビンゴカードを5次正方行列とみなした“ビンゴ行列”を定義するために、ビンゴカードの数の配置のルールを確認します。すると、次の3つのルールがあることが分かりました :

  • 真ん中はFree
  • 第1列は1~15まで,第2列は16~30まで,…,第5列は61~75まで
  • 数はすべて異なる

Freeは0とみなすことにしましょう。すると「穴を空ける操作」は「成分を0にする操作」と定義するのが自然です。また、穴が空いてしまったビンゴカードもビンゴ行列の仲間とします。

これらを踏まえて“ビンゴ行列”を定義します。

定義(ビンゴ行列)
5次正方行列A=(a_{ij})_{1\le i,j\le5}ビンゴ行列である
\overset{def.}{\iff} 行列Aの各成分は非負整数であって,次の条件を満たす:

  • a_{33}=0,
  • a_{ij}=0または1+15(j-1)\le a_{ij}\le15j,
  • a_{ij}=a_{kl} ならば (i,j)=(k,l)またはa_{ij}=a_{kl}=0.

また, a_{33} 以外の成分が正であるようなビンゴ行列を初期ビンゴ行列, そうでないビンゴ行列を中古ビンゴ行列と呼ぶ.

行列式ビンゴの定義

ビンゴというゲームは、ゲームマスターが抽選して選んだ数に穴を空け、縦・横・ナナメのいずれかを揃えることを目指すゲームでした。
\begin{pmatrix}
\color{red}{0} & \color{red}{0} & \color{red}{0} & \color{red}{0} & \color{red}{0}\\
10 & 28 & 32 & 60 & 71\\
4 & 20 & 0 & 57 & 65\\
5 & 16 & 45 & 49 & 63\\
11 & 13 & 31 & 55 & 66
\end{pmatrix}\begin{pmatrix}
\color{red}{0} & 22 & 41 & 53 & 61\\
\color{red}{0} & 28 & 32 & 60 & 71\\
\color{red}{0} & 20 & 0 & 57 & 65\\
\color{red}{0} & 16 & 45 & 49 & 63\\
\color{red}{0} & 13 & 31 & 55 & 66
\end{pmatrix}これを行列の言葉で定義できるかどうかを考えます。すると、どこかの行・列がすべて0であるような行列の行列式は0であることに気付きます。
\begin{equation*}\begin{vmatrix}
\color{red}{0} & \color{red}{0} & \color{red}{0} & \color{red}{0} & \color{red}{0}\\
10 & 28 & 32 & 60 & 71\\
4 & 20 & 0 & 57 & 65\\
5 & 16 & 45 & 49 & 63\\
11 & 13 & 31 & 55 & 66
\end{vmatrix}=0\end{equation*}\begin{equation*}\begin{vmatrix}
\color{red}{0} & 22 & 41 & 53 & 61\\
\color{red}{0} & 28 & 32 & 60 & 71\\
\color{red}{0} & 20 & 0 & 57 & 65\\
\color{red}{0} & 16 & 45 & 49 & 63\\
\color{red}{0} & 13 & 31 & 55 & 66
\end{vmatrix}=0\end{equation*}逆に、行列式が0である状態をビンゴと定義することで、ビンゴの一般化をすることができます。この定義により、

ビンゴとは行列のランクを下げるゲームである

と言えます。

ナナメのビンゴはどうでしょう?一般に、ナナメの成分が0だからと言って行列式が0であるとは限りません。そこで、トレースが0である状態をナナメのビンゴと別途に定義します。
\begin{equation*}\operatorname{tr}\begin{pmatrix}
\color{red}{0} & 22 & 41 & 53 & 61\\
10 & \color{red}{0} & 32 & 60 & 71\\
4 & 20 & 0 & 57 & 65\\
5 & 16 & 45 & \color{red}{0} & 63\\
11 & 13 & 31 & 55 & \color{red}{0}
\end{pmatrix}=0\end{equation*}もう一方のナナメのビンゴは少し無理やりですが、元の行列の第1列と第5列、第2列と第4列を交換した行列のトレースが0である状態と定義します。例えば
\begin{pmatrix}
13 & 22 & 41 & 53 & \color{red}{0}\\
10 & 28 & 32 & \color{red}{0} & 71\\
4 & 20 & 0 & 57 & 65\\
5 & \color{red}{0} & 45 & 49 & 63\\
\color{red}{0} & 13 & 31 & 55 & 66
\end{pmatrix}の場合、第1列と第5列、第2列と第4列を交換すると
\begin{pmatrix}
\color{red}{0} & 53 & 41 & 22 & 13\\
71 & \color{red}{0} & 32 & 28 & 10\\
65 & 57 & 0 & 20 & 4\\
63 & 49 & 45 & \color{red}{0} & 5\\
66 & 55 & 31 & 13 & \color{red}{0}
\end{pmatrix}となるので、この行列のトレースは0になりますね。

以上より、ビンゴの一般化ができました。

定義(detビンゴ・traceビンゴ)
ビンゴ行列Adetビンゴである\overset{def.}{\iff} \det A=0.
ビンゴ行列Atraceビンゴである\overset{def.}{\iff} \operatorname{tr} A=0または\operatorname{tr} \tilde{A}=0.
(ただし, \tilde{A}はビンゴ行列Aの第1列と第5列, 第2列と第4列を交換した行列を表す.)

detビンゴおよびtraceビンゴをまとめて「一般化されたビンゴ」呼ぶ. 特に誤解が生じなければ行列式ビンゴ」と呼ぶこともある.



ビンゴの一般化により、通常のビンゴではあり得ないビンゴが存在するようになりました。

f:id:corollary2525:20181219052622g:plainf:id:corollary2525:20181219052641g:plain
f:id:corollary2525:20181219052712g:plainf:id:corollary2525:20181219052734g:plain

ここまでがロマ数でお話した内容です。これ以降は時間の都合でお話できなかった内容です!


非自明な初期detビンゴ

数を順番に並べてできる初期ビンゴ行列
\begin{pmatrix}
1 & 16 & 31 & 46 & 61\\
2 & 17 & 32 & 47 & 62\\
3 & 18 & 0 & 48 & 63\\
4 & 19 & 34 & 49 & 64\\
5 & 20 & 35 & 50 & 65
\end{pmatrix}はdetビンゴです。この行列をロマ数では「手抜き型detビンゴ」を呼びましたが、初期ビンゴ行列がdetビンゴであることを「初期detビンゴ」と呼び直すことにします(麻雀好きであれば「天和detビンゴ」でもいいでしょう)。

この自明な行列以外に初期detビンゴがありえるのでしょうか?いくらでもありそうな気はしますが、「ビンゴ行列独特の数の縛り」があるので少し考える必要があります。

ビンゴ行列はおおよそ「第1列+第4列 = 第5列」が成り立つので、成分の配置を調整すれば「ぱっと見非自明な初期detビンゴ」がいくつか作れます。例えば
\begin{equation*}\begin{vmatrix}
3 & 22 & 41 & 58 & 61\\
12 & 28 & 32 & 59 & 71\\
5 & 20 & 0 & 60 & 65\\
6 & 16 & 45 & 57 & 63\\
11 & 13 & 31 & 55 & 66
\end{vmatrix}=0\end{equation*}はぱっと見非自明ですが、
\begin{equation*}\begin{pmatrix}
3\\
12\\
5\\
6\\
11
\end{pmatrix}+
\begin{pmatrix}
58\\
59\\
60\\
57\\
55
\end{pmatrix}=
\begin{pmatrix}
61\\
71\\
65\\
63\\
66
\end{pmatrix}\end{equation*}であることに注目すれば納得いきます。

この「第1列+第4列 = 第5列」型の初期detビンゴの総数等はまだ調べていないのですが、一番多い初期detビンゴはおそらくこの型が一番多いのではないでしょうか?


detビンゴの不安定性

通常のビンゴゲームの場合、一度ビンゴになったままゲームを続行しても、穴は増えていく一方なので「ビンゴの状態」を保ちます。一般化されたビンゴではどうでしょう?detビンゴでも同様な性質がありそうと考える人もいるかと思いますが、2次正方行列で
\begin{equation*}
\begin{vmatrix}
1 & 3\\
2 & 6
\end{vmatrix}=0,\quad
\begin{vmatrix}
1 & 3\\
\color{red}{0} & 6
\end{vmatrix}=6
\end{equation*}となる例を考えれば予想がつきますね…?

その予想は正しくて、一度detビンゴになった後、次の穴の空き方次第で「detビンゴの状態」が崩れることがあります。この性質はdetビンゴの不安定性と呼ばれているとかいないとか。例えば
\begin{equation*}\begin{vmatrix}
3 & 22 & 41 & 58 & 61\\
12 & 28 & 32 & 59 & 71\\
5 & 20 & 0 & 60 & 65\\
6 & 16 & 45 & 57 & 63\\
11 & 13 & 31 & 55 & 66
\end{vmatrix}=0\end{equation*}は初期detビンゴですが、それに気づかずにゲームを続行したせいで
\begin{equation*}\begin{vmatrix}
\color{red}{0} & 22 & 41 & 58 & 61\\
12 & 28 & 32 & 59 & 71\\
5 & 20 & 0 & 60 & 65\\
6 & 16 & 45 & 57 & 63\\
11 & 13 & 31 & 55 & 66
\end{vmatrix}=634905\end{equation*}になったりもします。

ちなみに、traceビンゴになったままゲームを続行しても、「traceビンゴの状態」は保ちます(それはそう)。


ビンゴ行列の行列式の最大値・最小値

今まではビンゴ行列の行列式が0のもの(detビンゴ)に注目してきましたが、行列式の最大値・最小値も気になるところです。今のところ具体的な値までは分かっていませんが、最大値と最小値の絶対値は等しいことだけは判明しています。

命題(ビンゴ行列の行列式の最大値・最小値)
5次正方行列のビンゴ行列全体の集合を\mathrm{BIN}(5)とおき,
\begin{align*}
M&:=\max\{\det A\mid A\in \mathrm{BIN}(5)\},\\
m&:=\min\{\det A\mid A\in \mathrm{BIN}(5)\}
\end{align*}とおく.このとき,M=-mが成り立つ.
証明
\det A=M\det B=mとなるA, B\in\mathrm{BIN}(5)をとる.ABの第1行と第2行を入れ換えた行列をそれぞれA'B'とおくとA', B'\in\mathrm{BIN}(5)であり,\det A'=-M\det B'=-m
mの最小性よりm\le-M.つまりM\le-mとなるが,Mは最大なのでM=-mが得られる.■


行列式ビンゴはゲーム足り得るか?

この節では行列式ビンゴのゲーム性について書いていきます。

言うまでもなく5次正方行列の行列式の計算は大変です。スマホをスッとかざすだけで行列式を計算できるアプリがあるならともかく、大人数が穴を空ける度に行列式を計算しているようではゲームテンポが悪いです。行列式(n次元) - 高精度計算サイトなどといった行列式計算サイトもありますが、行列式の簡単な計算もゲームに反映したいので、計算サイトを使えるのはせいぜいゲームマスター1人にした方が良いと考えています。

そこで、行列式ビンゴがゲームとして面白くなるように、いくつか案を考えたのでよかったら見てください。

案1: 行列式ビンゴ 3次ver.

行列のサイズを3次に減らし、扱う数も小さくすることで計算量を軽くする案です。
\begin{pmatrix}
1 & 6 & 11\\
2 & 0 & 12\\
3 & 8 & 13
\end{pmatrix}

  • 真ん中は0
  • 第1列は1~5まで,第2列は6~10まで,第3列は11~15まで
  • 数はすべて異なる

という数の縛りを考えましたが、2桁の数が出てくる時点で計算が面倒と感じる場合は

  • 第1列は1~4まで,第2列は4~7まで,第3列は7~10まで

というルールでもいいと思います。
\begin{pmatrix}
4 & 6 & 7\\
1 & 0 & 8\\
2 & 5 & 10
\end{pmatrix}

2人対戦の行列式ビンゴ大会(案)

  1. お互いにルールに則った3×3の行列を作って相手に渡す。
  2. 計算タイム(1分)
  3. 貰った行列が初期detビンゴなら勝ち。お互いに初期detビンゴならやり直し。初期detビンゴがなければ、次のステップへ。
  4. 多面体サイコロを振るなどをして、選ばれた数があれば0にする。
  5. 計算タイム(1分)
  6. ビンゴと分かったら「detビンゴ!」「traceビンゴ!」と宣言し、実際にビンゴなら勝ち、計算ミスの場合は負け。宣言が同時の場合は計算ミスをした方が負け、お互いに計算ミスがなければ引き分け。
  7. お互いにビンゴの宣言がなければ、4に戻る。以後、勝負が着くまで繰り返し

このルールでは計算力に強く依存した勝負になるので、サイコロを振る以外に何か相手を邪魔するムーブを作ると面白くなるかもしれません(真ん中の成分を0でない何かに変えるとか?符号を変えるとか?)

複数人でやる行列式ビンゴ大会(案)

  1. ゲームマスターが事前に用意した3×3の行列を参加者に裏面にして渡す
  2. 合図とともに計算タイム(1分)
  3. 貰った行列が初期detビンゴだと分かったら「detビンゴ!」と宣言して景品ゲット。計算ミスの場合は席に戻る。
  4. ゲームマスターが数の抽選をして、選ばれた数があれば0にする。
  5. 計算タイム(1分)
  6. ビンゴだと分かったら「detビンゴ!」「traceビンゴ!」と宣言する。実際にビンゴであれば景品ゲット、計算ミスの場合は席に戻る。
  7. 景品を配り終えたら4に戻る。以後、景品が無くなるまで繰り返し

3×3の行列で行う場合、扱う数が少ないので「ビンゴ!」を同時に宣言することが起きやすく、トラブルになりやすいと思います。ゲームマスターのチェックも大変ですし、大人数でやる場合は普通にビンゴやった方が楽しいと思います笑。改善案があれば教えてください!

案2: 行列式黒ひげ ~det or alive~

「行列の成分を0にする操作」を「穴に短刀を刺す操作」と考えれば、黒ひげ危機一髪的なゲームもできると思いました。もはやビンゴではないので数に関する縛りは無意味です。このゲームであれば5次正方行列でも問題なくプレイできます。

行列式黒ひげ ~det or alive~(案)

  1. 任意の正方行列を作る(ゲームマスターが用意したものでもいいし、参加者が順番に数を埋めていってもよい)。
  2. 行列の成分を0にする順番を決める。
  3. ゲームマスター行列式が0かどうかをチェック(0だったら1番目の人が負け!)。
  4. 1番目の人が0にする成分を決める
  5. ゲームマスター行列式が0かどうかをチェック(0だったら負け!)。
  6. 行列式が0でなければ、次の人が0にする成分を決める。以後、行列式が0になるまで繰り返し

(あれ?黒ひげ危機一髪の方が面白そうかも…?)


まとめ

ロマ数で残っていた確率に関する課題

  • 初期detビンゴである確率
  • N回の試行(数の抽選)で行列式ビンゴになる確率

がまだ解けていないのが心残りですが、ひとまずここで一区切りにしたいと思います。

1年前の思いつきがここまで発展するとは思いませんでした。ロマ数の発表も、ツイートを見る感じでは楽しんでいただけたようで嬉しかったです。また、せっかくゲームを考えたので、一度くらいは行列式ビンゴおよび行列式黒ひげをやってみたいなぁと思っています。私とやってみたい方、実際に友人とやってみた感想、改善案などはいつでも募集中です!

thank Q for rEaDing.φ(・▽・ )