集合トランプ

次世代のトランプ「集合トランプ」で遊べるゲームを紹介しています

集合トランプで遊べるゲーム一覧

この記事では、集合トランプ で遊べるゲームを一覧にしてまとめています。各項目には、簡単な説明・ルールなどの詳細を解説している記事へのリンクを添えました。

f:id:muratsubo:20191122000244j:plain
集合トランプ

ルール紹介記事が存在するもの

集合スピード

補集合神経衰弱

  • 補集合 の関係にあるペアを探し出す「神経衰弱」

補集合かるた

  • 読まれた札の 補集合 を取る「かるた」

位相麻雀

  • 競い合いながら、自分の 位相 を育てていく

分割ババ抜き

  • 全体集合  U分割 になっている、「2 枚とは限らない」カードの組を捨てていく「ババ抜き」

 \text{sh} \hspace{0.2pt} U \hspace{-1.1pt} \text{gor} \hspace{0.5pt} \emptyset \hspace{0.5pt} \text{n}(しゅごろん)

  • 包含関係 によるヒントを用いて、相手が隠している集合を推理・特定する「NumerØn」

大集豪

  • 包含関係 あるいは 辞書式順序 の意味で "強い" カードを場に出していく「大富豪」

adjaSet

  • 隣接リスト表現 をなす集合の組を、場からいち早く探し出す

ジャンモジャナン

  • 集合に「名前をつけて」正しく読む

まだルール紹介記事を書いていないもの

以下の集合トランプゲームたちは、まだ本ブログに記事が存在していません*1。ですが、集合トランプを BOOTH にて購入すると付属している「遊び方一覧」の冊子には、それらのルールは既にきちんと書かれています:

集合カバーバトル

  • 包含関係 にしたがって、集合を「物理的に」積み上げていく

シングルトン

  • 集合トランプ版「UNO」 1 元集合(シングルトン)が特別な効果を持っている

TriSets

  • 包含関係 を用いた、集合トランプにおけるソリティアの一種

ここに記載されている遊び方は、あくまで集合トランプの可能性のほんの一部です。ルールをアレンジして遊ぶもよし、まったく別のオリジナルな遊び方を考えるもよし、色々な遊び方を試してみてください!

*1:早いところ書かねば……

ジャンモジャナン

概要

 \{1, 2, 3\}

みなさんは、この集合をどのように読んでいますか?

「1 と 2 と 3 の集合」「1 と 2 と 3 からなる集合」、あるいは「集合 1、2、3」などでしょうか。

この集合トランプゲーム ジャンモジャナン は、なんと集合の読み方を 勝手に決める ことができます!

f:id:muratsubo:20190522193624p:plain

ルール

プレイヤーは 2 人以上を想定しています。

カードの読み方

ジャンモジャナンは、カードに「読み方」を与えるゲームです。とはいえ、各プレイヤーが自由気ままに読みを決めてしまうと、収拾がつかなくなってしまいそうですね。

そこで、このゲームでは、以下の規則にしたがって、カードの読みを決定していくことにします。

数の読み・集合の読み

  • 数は、1 文字以上の 読みを持つものとします。
  • 黒色の 集合は、その要素を 小さい順に、それぞれの数の読みで読むことにします。
  • 赤色の 集合は、その要素を 大きい順に、それぞれの数の読みで読むことにします。

各数の読みが

  •  1「ジャ」
  •  2「ン」
  •  3「モ」
  •  4「ジャ」
  •  5「ナン」

と定まっているとします。このとき、集合の読みは次のようになります:

  •  \{1\}「ジャ」
  •  \{3, 5\}「モナン」
  •  \{1, 3, 5\}「ジャモナン」
  •  \color{red}{\{1, 3, 5\}}「ナンモジャ」
  •  \color{red}{\{1, 2\}}「ンジャ」
  •  \color{red}{\{2, 5\}}「ナンン」
  •  \emptyset「」
  •  U「ジャンモジャナン」
  •  \color{red} U「ナンジャモンジャ」

準備

集合トランプ 1 セット 64 枚をよく切って、山札として裏向きに積み重ねておきます。

手番

プレイヤー(誰でもよいです)が、山札の一番上のカードをオープンします。 ここでめくられたカードの「読み」が一意に定まっているかどうかで、この後に行うことが変わります。

読みが定まっている場合

めくられたカードの読みが既に決まっている場合は、その集合を いち早く、正しく 読めたプレイヤーが、めくられたカードを獲得できます。読み間違えたり途中で噛んだりしてしまうと、このカードを手に入れることはできません。

もし、誰もカードを手に入れられなかった場合は、次にカードを手に入れた人が、このカードを獲得します。

なお、空集合  \emptyset の読みは常に「」に定まっていますが、空なので 読めない ですね。なので、空集合がめくられた場合も同様に、次にカードを手に入れた人が獲得できることにします。

読みが定まっていない場合

めくられたカードの読みがまだ確定していない場合は、その 集合に 読みを与えます。この際、既に決められた他の集合の読みに矛盾するような読みを与えることはできません。正しく読みを与えることができたプレイヤーが、このカードを獲得します。

なお、ここで定められた読みを正しく覚えておくことは難しいので、どこかにメモしておくことを推奨します。ただし、そのメモを見ながら集合を読むことは禁止します。あくまで「正しく読めたか」の判定にのみ用いてください。

終了

山札が尽きたら、ゲームは終了となります。獲得した手札が多い順として、プレイヤーの順位が定まります。

ゲームの進行例

「集合の読みが定まっていく過程」を、具体的に見ていきましょう。

 \{1\}

はじめの集合は、当然(空でなければ)読みは定まっていません。なので、読みを与えます。

例えば、 \{1\} の読みを「しゅうごう」と定めます。すると、自動的に数  1 の読みが「しゅうごう」になりますね。

 \{2, 4\}

次の集合は  \{2, 4\} です。これもまだ読みは定まっていませんね。要素数が 2 なので、2 文字以上の読みを与えなければいけないことに注意してください。

ここでは、読みを「しゅうしゅうか」としてみます。このとき、数  2, 4 の読みはまだ定まりません。というのも、

  •  2 の読み「し」、 4 の読み「ゅうしゅうか」*1
  •  2 の読み「しゅ」、 4 の読み「うしゅうか」
  •  2 の読み「しゅう」、 4 の読み「しゅうか」
  •  2 の読み「しゅうし」、 4 の読み「ゅうか」
  •  2 の読み「しゅうしゅ」、 4 の読み「うか」
  •  2 の読み「しゅうしゅう」、 4 の読み「か」

の 6 通りが、読みとしてあり得ることになるからです。

 \{3, 4, 5\}

これもまだ、読みは定まっていません。しかし、上で  4 の読みが 6 通りに制限されたので、例えば「くうしゅうごう」のような読みを与えると、既存の読みに矛盾してしまいます。

では、「そうかいかん」と読むことにします。このとき、考えられる  3, 4, 5 の読み方は、

  •  3「そ」、 4「うか」、 5「いかん」
  •  3「そう」、 4「か」、 5「いかん」
  •  3「そうかい」、 4「か」、 5「ん」

の 3 通りになりますね( 4 の読みに縛りがかかっていることに気をつけてください)。

 \{1, 2, 4\}

まだ、数  2, 4 の読みが定まっていないので、この集合の読みは確定していないように思えますが、実はもうこの読みは一意に定まっています

 1 の読みが「しゅうごう」、 \{2, 4\} の読みが「しゅうしゅうか」であったので、この集合の読みは「しゅうごうしゅうしゅうか」と定まっています。

集合収集家っていったい何なんでしょうね。このゲームは、単語が切り貼りされて偶然生まれた "パワーワード" を楽しむゲームと言っても過言ではありません。

 \color{red}{\{1, 2, 4\}}

赤い集合なので、数を大きい順に、すなわち  \{4, 2, 1\} と読むことになっています。黒の  \{1, 2, 4\} と違って、こちらはまだ確定していません。これまでに定められた読みを考慮すると、

  •  2「しゅうしゅ」、 4「うか」→  \{4, 2, 1\}「うかしゅうしゅしゅうごう」
  •  2「しゅうしゅう」、 4「か」→  \{4, 2, 1\}「かしゅうしゅうしゅうごう」

ここでは、前者の読み「うかしゅうしゅしゅうごう」を採用します。すると、各数の読みが

  •  1「しゅうごう」
  •  2「しゅうしゅ」
  •  3「そ」
  •  4「うか」
  •  5「いかん」

と、一意に定まることがわかります。

数の読みが定まったら、あとはひたすら集合を素早く正しく読む戦いとなります。例えば、

  •  \{3\}「そ」
  •  \{2, 5\}「しゅうしゅいかん」
  •  \{3, 4\}「そうか」
  •  \color{red}{\{1, 3\}}「そしゅうごう」*2
  •  \color{red}{\{1, 5\}}「いかんしゅうごう」
  •  U「しゅうごうしゅうしゅそうかいかん」
  •  \color{red} U「いかんうかそしゅうしゅしゅうごう」

などと読むことになりますね。

まとめ

ヘンテコな集合の読みが生まれていく集合トランプゲーム、ジャンモジャナン でした。頭の中に「辞書」を素早く構成する能力が求められますね。

*1:1 文字目が「ゅ」である単語をどう読むかは、皆さんにお任せします。これがきもちわるいと感じる人は、お好みでこのような区切り方を禁止してください

*2:狙ったわけではないのですが、実在の概念 素集合 が現れました

adjaSet

概要

先日投稿した以下の記事で、「グラフの隣接リスト表現」というものを紹介していました:

紹介したということはつまり、この概念を用いるゲームがあるということです。それが、今回紹介する集合トランプゲーム adjaSet *1 です!

ルール

プレイヤーは、0 人でさえなければ 理論上どれだけ多くても 遊べます。

集合トランプ 1 色 32 枚をよく切って山札とし、そこから 12 枚程度引いて場に並べます。*2 プレイヤーは、場札の中から、隣接リスト表現となっている集合 5 枚組 を探してください。*3

条件を満たす組を最も早く見つけたプレイヤーが、その 5 枚を獲得して、山札から新たに 5 枚の場札を補充します。取れそうなカードがなくなるまでこれを繰り返して、より多くのカードを獲得したプレイヤーが勝利となります。

ルールは以上です。*4

テクニック

物は試し、以下の 12 個の集合から「隣接リスト表現」を探し出してみてください:

12 個の集合

どうですか? 発見できましたか?
ルール文の簡潔さとは裏腹に、隣接リストの組はそう簡単には見つけられないはずです。

カード 12 枚の中から順序も気にして 5 枚のカードを選ぶ方法は  _{12} \mathrm P_5 = 95040 通りもあります。そのうえ、条件を満たすような組はこの中に平均で およそ 0.1 % (95 組) しか存在しません。*5 さらに、そもそも条件を満たすかどうかの判定がそれほど簡単に行えないので、場当たり的に探したところで目的の 5 つ組はまず見つかりません。

そこで、隣接リストを効率的に探す方法をいくつか考えました。

包含列

  •  \{a\}, \{a, b\}
  •  \{a\}, \{a, b\}, \{a, b, c\}
  •  \{a\}, \{a, b\}, \{a, b, c\}, \{a, b, c, d\}
  •  \{a\}, \{a, b\}, \{a, b, c\}, \{a, b, c, d\}, \{a, b, c, d, e\}

このような「要素が 1 つずつ増えていく集合たち」は、"降順に" 並べると隣接リスト表現になります:

\[ \xymatrix{ \overset{\{a, b\}}a \ar@{-}[r] \ar@(dl,dr)@{-}[ ] & \overset{\{a\}}b } \] \[ \xymatrix{ \overset{\{a, b, c\}}a \ar@{-}@/^10pt/[rr] \ar@{-}[r] \ar@(dl,dr)@{-}[ ] & \overset{\{a, b\}}b \ar@(dl,dr)@{-}[ ] & \overset{\{a\}}c } \] \[ \xymatrix{ \overset{\{a, b, c, d\}}a \ar@{-}@/^15pt/[rrr] \ar@{-}@/^10pt/[rr] \ar@{-}[r] \ar@(dl,dr)@{-}[ ] & \overset{\{a, b, c\}}b \ar@{-}[r] \ar@(dl,dr)@{-}[ ] & \overset{\{a, b\}}c & \overset{\{a\}}d } \] \[ \xymatrix{ \overset{\{a, b, c, d, e\}}a \ar@{-}@/^20pt/[rrrr] \ar@{-}@/^15pt/[rrr] \ar@{-}@/^10pt/[rr] \ar@{-}[r] \ar@(dl,dr)@{-}[ ] & \overset{\{a, b, c, d\}}b \ar@{-}@/^10pt/[rr] \ar@{-}[r] \ar@(dl,dr)@{-}[ ] & \overset{\{a, b, c\}}c \ar@(dl,dr)@{-}[ ] & \overset{\{a, b\}}d & \overset{\{a\}}e } \]

このことを知っているだけでも、上の例にある 12 個の集合の中から、

\[ (\{2\}, \{1, 2, 3, 4, 5\}, \{2, 4\}, \{2, 3, 4, 5\}, \{2, 4, 5\}) \\ (\{1\}, \{2, 4, 5\}, \{3\}, \{2, 4\}, \{2\}) \]

などの隣接リスト表現を見つけ出すことができるようになります。

完全グラフ

すべての異なる頂点どうしが辺で結ばれているグラフを 完全グラフ といいます。完全グラフの隣接リストをつくるには:

  • 3 頂点  a, b, c からなる完全グラフ →  \{b, c\}, \{a, c\}, \{a, b\}
  • 4 頂点  a, b, c, d からなる完全グラフ →  \{b, c, d\}, \{a, c, d\}, \{a, b, d\}, \{a, b, c\}

のように、「 n 頂点のうち  n-1 個が入っている  n 個の集合すべて」があればよいことになります:

\[ \xymatrix@C=7pt{ & \overset{\{b, c\}}a \ar@{-}[ld] \ar@{-}[rd] & \\ \overset{\{a, c\}}b \ar@{-}[rr] & & \overset{\{a, b\}}c } \] \[ \xymatrix{ \overset{\{b, c, d\}}a \ar@{-}[r] \ar@{-}[d] \ar@{-}[rd] & \overset{\{a, c, d\}}b \ar@{-}[d]\ar@{-}[ld] \\ \overset{\{a, b, d\}}c \ar@{-}[r] & \overset{\{a, b, c\}}d } \]

先ほどの例では、 \{2, 4\}, \{4, 5\}, \{2, 4, 5\} の 3 つを用いれば、 2, 4, 5 を頂点とする完全グラフ(に  4 の自己ループが加わったもの)を作れるので、これを基にして

\[ (\{1\}, \{4, 5\}, \{3\}, \{2, 4, 5\}, \{2, 4\}) \]

を得ることができます。

辺を加える

汎用的な考え方として、「いったん不完全なグラフを作ってしまい、その後に辺を付け足してつじつまを合わせる」というものがあります。

先ほどの 12 個の集合を再び例にします。もし仮に  \{3, 5\} があれば、 \[ (\ast, \ast, \{4, 5\}, \{3, 5\}, \{3, 4\}) \] とすれば 3 頂点の完全グラフができるのですが、残念ながら  \{3, 5\} が存在しません。そこで、代わりに "わりと似てる"  \{2, 3, 4, 5\} を入れてみます:

\[ (\ast, \ast, \{4, 5\}, \{2, 3, 4, 5\}, \{3, 4\}) \]

こうすれば、後は頂点  2 が頂点  4 を指すように残りを埋めてやればよいことになりました。頂点  3, 5 のことはもう考えなくてよくなった *6 ので、後は残りを上手く埋めてやれば、

\[ (\{1\}, \{2, 4\}, \{4, 5\}, \{2, 3, 4, 5\}, \{3, 4\}) \\ (\{2\}, \{1, 4\}, \{4, 5\}, \{2, 3, 4, 5\}, \{3, 4\}) \]

などが解になることがわかります。

まとめ

なんとかしてグラフを見つける集合トランプゲーム adjaSet でした。

率直に言って、このゲームはかなり慣れを要します。しかしながら、ひとたび慣れてしまえば案外サクサクと隣接リスト表現を見つけられるようになります。1 人でじっくり考えながら練習することもできるので、ぜひ遊んでみてくださいな。

*1:adja- は「隣接 (adjacency)」 から来ています

*2:プレイヤーの練度に応じて、山札・場札の枚数を増減させるのもよいですね

*3:ごくまれに、条件を満たす 5 枚組が存在しないことがあります。その場合は、山札から何枚か引いて、場札を増やすことで対応します

*4:実は、以上のルールの流れは セット というカードゲームとほとんど同じです。"集合" トランプで "セット" ……

*5:コンピュータに計算させました

*6:厳密には「頂点  3, 5 を含まないような集合のみを考えればよくなった」と言うべきですね

大集豪

概要

定番トランプゲームのひとつに、「大富豪」(あるいは「大貧民」)がありますね。これを集合トランプ上に持ち込んだものとして、大集豪 *1 というゲームが知られています。

定義

ルール説明の前に、このゲームにおける「カードの強さ」などを定めておきます。

カードの強さ

2 枚のカード(2 つの集合) A, B について、 A B より 強い とは、次の 2 つの条件のうちどちらかを満たしていることを言います:

  •  A \supsetneq B
     A B を真に含んでいる)
  •  |A| = |B| かつ  A >辞書  B
     A, B の要素数が等しく、かつ辞書式比較において  A B より大きい)

ただし、例外的に  \emptyset U より強いと約束します。*2

また、 A B より 弱い とは、 B A より強いことと定めておきます。

具体例を挙げると、以下のような強さ関係が成り立ちます:

  •  \{1, 2\} \{1\} より強い(含んでいる)
  •  \{2, 3, 4\} \{1, 4, 5\} より強い(要素数が等しく、辞書順で大きい)
  •  \{1, 3, 5\} \{2, 5\} より強くはないし、弱くもない

例の 3 番目からもわかるように、「強くない」と「弱い」はイコールではありません。

カードの連続

 n 枚のカードの組  (A_1, A_2, \cdots, A_n)連続している とは、これらの要素数がすべて等しく、かつこれらが辞書順で連続して並んでいることを言います。例えば:

  •  (\{3\}, \{4\}, \{5\})
  •  (\{1, 3\}, \{1, 4\}, \{1, 5\}, \{2, 3\})
  •  (\{1, 4, 5\}, \{2, 3, 4\}, \{2, 3, 5\}, \{2, 4, 5\}, \{3, 4, 5\})
  •  (\{1\})(カードが 1 枚だけの場合、無条件に連続していることになります)

これらの集合たちは、それぞれ「連続している」ということです。逆に、次の集合たちは連続したものではありません:

  •  \{4\}, \{5\}, \{1, 2\}(要素数が異なっている)
  •  \{1, 3, 5\}, \{2, 3, 4\}, \{2, 3, 5\} \{1, 4, 5\} が抜けているので、辞書順連続でない)
  •  \{1, 2, 3, 4\}, \{1, 2, 3, 5\}, \{1, 3, 4, 5\} \{1, 2, 4, 5\} が抜けているので、辞書順連続でない)

「辞書順連続」の条件は少し見えにくいので、気をつけてください。

ルール

プレイヤーを 2 人以上 *3 集めて、全員にできるだけ均等に 64 枚のカード全てを配り切ります。その後、適当な方法で手番順とスタートプレイヤーを決定します。

手番にできること

手番のプレイヤーは、手札からカードを選んで場に出していきます。

場にカードがない場合

場にカードが出ていない(すなわち、ゲーム開始直後 または 場が流れた直後)ときは、プレイヤーは 連続した 1 枚以上のカードの組を自由に選んで場に出さなければいけません。*4

場にカードがある場合

場に既に  n 枚のカードの組  (A_1, A_2, \cdots, A_n) が出ているとします。このとき、プレイヤーは、(連続していなくてもよい) n 枚のカードの組  (B_1, B_2, \cdots, B_n) であって、以下の強さ関係が成り立つようなものを、手札から自由に選んで出すことができます:

\[ \xymatrix{ A_1 \ar[r] \ar[d] & A_2 \ar[r] \ar[d] & \cdots \ar[r] \ar@{}[d]|\cdots & A_n \ar[d] \\ B_1 \ar[r] & B_2 \ar[r] & \cdots \ar[r] & B_n } \]
場にカードがある場合の、手札を出せる条件

 A より  B が強いことを、 A \to B で表しています。

なお、出せるカードがない(あるいは、出したいカードがない)場合は、パスをすることができます。誰もカードを出すことなくパスが 1 周続いたら、場が流れ、最後にカードを出していたプレイヤーが次の手番を行います。

これを繰り返して、早く手札を 0 枚にした順に、ゲームの順位が決定します。

革命

連続した 4 枚以上のカードの組が出されると、革命が発生します。

革命が発生すると、「強さ」「弱さ」の関係がひっくり返ります。すなわち、さきほど図示していた条件における "矢印の向き" が逆転します:

\[ \xymatrix{ A_1 & A_2 \ar[l] & \cdots \ar[l] & A_n \ar[l] \\ B_1 \ar[u] & B_2 \ar[l] \ar[u] & \cdots \ar[l] \ar@{}[u]|\cdots & B_n \ar[l] \ar[u] } \]
強さ関係逆転時における、手札を出せる条件

革命によってひっくり返った強さ関係は、場が流れた後も継続します。

 \emptyset 切り /  U 切り

それ自身を除いたあらゆる集合より弱い集合」が それ単体で(1 枚組として)場に出されると、その瞬間に場が流れ、そのカードを出したプレイヤーが次の手番を行います。*5

難しく書いていますが、要は「通常の強さ関係時には  \emptyset で、逆転時には  U で場が切れる」というルールです。

カードを出せる条件の記述が抽象的だったので、いくつか具体例を挙げます。

まず、初めに出たカードが 1 枚であれば、単純により強いカードを出していくだけになります:

\[ \xymatrix{ \{3\} \ar[d] \\ \{1, 3\} \ar[d] \\ \{1, 5\} \ar[d] \\ \{4, 5\} \ar[d] \\ \{2, 4, 5\} \ar[d] \\ \{1, 2, 4, 5\} } \]
カード 1 枚のときの流れ(各段がそれぞれ 1 手番を表します)

次に、初めに複数枚の連続したカードが出た場合の流れは、以下のようになります:

\[ \xymatrix{ \{1, 5\} \ar[r] \ar[d] & \{2, 3\} \ar[r] \ar[d] & \{2, 4\} \ar[d] \\ \{2, 5\} \ar[r] \ar[d] & \{2, 3, 5\} \ar[r] \ar[d] & \{2, 3, 4, 5\} \ar[d] \\ \{3, 4\} \ar[r] & \{3, 4, 5\} \ar[r] & U } \]
カード 3 枚組のときの流れ

すべての矢印が成立していることを確かめてみてください。

例外的に  \emptyset U より強いことを用いると、次のような奇妙な出し方をすることもできます:

\[ \xymatrix{ \{1\} \ar[r] \ar[d] & \{2\} \ar[d] \\ \{4\} \ar[r] \ar[d] & \{2, 4\} \ar[d] \\ \{1, 4\} \ar[r] \ar[d] & \{2, 5\} \ar[d] \\ \{1, 3, 4\} \ar[r] \ar[d] & U \ar[d] \\ U \ar[r] \ar[d] & \emptyset \ar[d] \\ \emptyset \ar[r] & \{4\} } \]
カード 2 枚組のときの流れ

はじめに 4 枚以上の連続カードの組が出されると、革命が起こって強さ関係が逆転するため、例えば以下のようにカードが出されていきます:

\[ \xymatrix{ \{1, 4, 5\} \ar[r] & \{2, 3, 4\} \ar[r] & \{2, 3, 5\} \ar[r] & \{2, 4, 5\} \\ \{4\} \ar[r] \ar[u] & \{2, 4\} \ar[r] \ar[u] & \{3, 5\} \ar[r] \ar[u] & \{4, 5\} \ar[u] \\ \{1\} \ar[r] \ar[u] \ar[d] & \{2\} \ar[r] \ar[u] \ar[d] & \{3\} \ar[r] \ar[u] \ar[d] & \{4\} \ar[u] \ar[d] \\ \{1, 2\} \ar[r] \ar[d] & \{2, 4\} \ar[r] \ar[d] & \{2, 3, 4\} \ar[r] \ar[d] & \{3, 4, 5\} \ar[d] \\ \{1, 4\} \ar[r] & \{1, 2, 4\} \ar[r] & \{1, 2, 3, 4\} \ar[r] & U } \]
カード 4 枚組のときの流れ

1 段目と 3 段目で革命が起こっています。

まとめ

大富豪 on 集合トランプ、大集豪 でした。ルールはほとんど大富豪そのままですが、強さ関係が変更されていることで、違ったテイストのゲームになっています。複数枚出しがきれいに決まると気持ちいい。

また、大富豪と言えば「ローカルルールの多さ」ではないでしょうか。この記事では特殊ルールを「革命」「*切り」しか定義していませんが、この他にもいろいろな追加ルールを考えてみるのも一興です。

*1:元のゲーム名「大富豪」、"みんな集まる" の意味での「大集合」、ある数学的な構造を考えるときに "基礎とする" 集合「台集合」の 3 つのワードが混ざっています

*2:同時に、 U \emptyset より強くもあることに注意してください

*3:通常の大富豪よろしく、できれば 3 ~ 4 人は確保したほうが楽しいと思います

*4:前述のとおり、カード 1 枚からなる組は必ず連続しているので、手詰まりが発生することはありません

*5:"8 切り" というよりかは "スぺ 3" のほうがルールとしては近そうですね

集合トランプにまつわる集合の諸概念(応用編)

以前の記事では、「属する」「含む」「和集合」「補集合」などなど、集合に関する基礎的な概念を紹介しました:

一方で、集合トランプゲームの中には、「集合論」の範囲を飛び越えた概念を用いているものもあります。「集合」という概念は基礎的かつ汎用的であるゆえに、数学のあらゆる分野で用いられています。そのため、集合というものを使うだけでも、数学のさまざまな分野で "遊ぶ" ことができるのです!

この記事では、そんな "応用的な" 集合トランプゲームで用いられている概念の紹介・説明を行っています。

目次

位相

数学には「位相空間論」という分野があるのですが、そこでは 位相 (topology) *1 という概念が顔を出します。どんなものかというと:

集合  X に対し、 \mathcal O \subset \mathcal P(X) X 上の位相である( X 上に位相構造を定める)とは、以下の 3 条件を満たしていることをいう:

  1.  \emptyset, X \in \mathcal O
  2. 有限個の  A_\lambda \in \mathcal O に対し、 \bigcap_\lambda A_\lambda \in \mathcal O
  3. 任意個の  A_\lambda \in \mathcal O に対し、 \bigcup_\lambda A_\lambda \in \mathcal O

よく、位相とは「"近さ" を表すグループ分け」みたいなイメージだ、とか言われていたりいなかったりするのですが、上の定義から "近さ" っぽさは感じ取れませんね……。この記事では、この抽象的でむずかしそうな「一般の場合」における位相については深く触れないことにして、「集合トランプでの実用に耐える程度の」位相の解説をします。

集合トランプでは、全体集合  U = \{1, 2, 3, 4, 5\} でした。この  U の上の位相のみを考えることにすれば、上のややこしい定義は以下のように言い換えることができます:

 \mathcal O \subset \mathcal P(U) U 上の位相であるとは、以下の 2 条件を満たしていることをいう:

  1.  \emptyset, U \in \mathcal O
  2.  A_1, A_2 \in \mathcal O に対し、 A_1 \cup A_2,\ A_1 \cap A_2 \in \mathcal O

標語的に言えば、 U 上の位相とは、 \emptyset U が属していて、かつ和 ( \cup) と積 ( \cap) について閉じているような、「いくつかの  U の部分集合」の集合のことを指します。

具体例を挙げます。まず、 U 上のいちばん単純な位相として、

 \{\emptyset, U\}

 
があります。条件 1. に従って、最低限必要な 2 つの集合  \emptyset, U だけを集めたものですね。条件 2. を満たしていることも、かんたんにわかるかと思います。

それから、 U の部分集合を全部集めたもの、つまり  U のべき集合:

 \mathcal P(U)

 
これも、 U 上に位相を定めます。この位相にはあらゆる集合が属しているわけだから、その中のどの 2 つをとってきても、それらの和集合や共通部分はこの位相の中にあるはずですよね。

ちょっと難しい例では、

 \{\emptyset, \{1\}, \{1, 2\}, \{1, 3\}, \{1, 2, 3\}, \{1, 2, 4\}, \{1, 2, 3, 4\}, U\}

 
なんかも  U 上の位相になります。条件 2. を満たしていることを確認してみてください。

グラフの隣接リスト表現

グラフ理論」というワードを聞いたことがありますでしょうか。これは、その名の通り、グラフ と呼ばれるものについて考える分野です。ここでいうグラフとは、いくつかの 頂点 によってつながっている、以下のようなものを指します:

f:id:muratsubo:20190407211054p:plain
グラフの例

ところで、こういったグラフを表現しようと思ったとき、いちいち図を描くのは面倒ですね。この例のように頂点の数が十分に少ないときはまだしも、頂点が  100 個とか  5 \times 10^{15} 個とか、あるいは無限個とかになってしまうと、もうどうしようもありません。

そこで、お絵描きせずに グラフを表現する方法が求められます。ここでは、そのような方法のひとつである、隣接リスト表現 というものを紹介します。

試しに、上で例示したグラフを、隣接リスト表現に直してみます。まず、各頂点をちゃんと区別できるように、番号を振ってあげましょう:

f:id:muratsubo:20190407212618p:plain
各頂点に  1 \sim 5 の番号を振った

そうしたら、各頂点について、「その頂点が結びついている頂点」を列挙します:

  • 頂点  1 とつながっている頂点は  2, 3, 4
  • 頂点  2 とつながっている頂点は  1, 4
  • 頂点  3 とつながっている頂点は  1
  • 頂点  4 とつながっている頂点は  1, 2, 5
  • 頂点  5 とつながっている頂点は  4

そして、これらを各頂点ごとにまとめて(集合にして)並べたもの:

 (\{2, 3, 4\}, \{1, 4\}, \{1\}, \{1, 2, 5\}, \{4\})

 
が、グラフの隣接リスト表現です。この集合 5 つ組について、1 番目の集合は頂点  1 に隣接する頂点、2 番目の集合は頂点  2 に隣接する頂点たち、…… と読み取っていくと、ちゃんと元のグラフを復元できることが確かめられますね。*2

以下に、5 頂点からなるグラフの隣接リスト表現を表示する、javascript で動作するプログラムを用意しました。2 つの頂点がクリックで選択されると、それらの間に辺がなければ追加、あれば削除します。*3 いろいろ試して、隣接リスト表現と仲良くなってみてください。

*1:同じ「位相」でも、物理の波らへんの話なんかで出てくる位相 (phase) はまた別物です。ややこしい

*2:グラフを考えるときは、「頂点どうしのつながりかた」のみに着目するものとします。この隣接リスト表現からは、たとえば元々のグラフの頂点の位置関係などを復元することはできませんが、そういう細かいことは気にしないのです。つながりかたさえ同じであればよいんです。

*3:2 つの頂点として同じものを選んでも構いません。その場合、自己ループ(ある頂点から出発して、同じ頂点に戻ってくるような辺)が追加または削除されます。

shUgorØn

過去に地上波で放送されていた NumerØn というゲームをご存知でしょうか。マスターマインドというゲームをベースとした、2 人用の対戦ゲームです。

本記事では、このゲームを集合トランプ上に持ち込んだゲーム  \text{sh} \hspace{0.2pt} U \hspace{-1.1pt} \text{gor} \hspace{0.5pt} \emptyset \hspace{0.5pt} \text{n} *1 を紹介します。

概要

NumerØn と同様に 2 人対戦ゲームで、伏せられた相手の 集合 を推測して当てることが勝利条件となっています。そのために、相手の伏せられた集合に対し「質問」をすることができるのですが、この質問によって 自分が伏せている集合についての情報を相手に与えてしまう 可能性があることが、NumerØn との大きな違いでしょうか。

なお、このゲームでは、「集合スピード」などの集合トランプゲームと同様に、集合の「包含関係(含む / 含まれる)」という概念を使っています。

ルール

初期化

まず初めに、プレイヤー 2 人は、それぞれ集合トランプのどちらか 1 色 32 枚を手札として持ちます。そして、その 32 枚の中から 1 枚を選び、手元に伏せて置きます。

準備が終わったら、じゃんけん等で先攻・後攻を決定し、ゲームを開始しましょう。

手番の流れ

プレイヤーは、持っている集合を 1 つ公開して、相手の伏せられた集合に対して質問を行います。質問は、各手番にちょうど 1 回だけ行います。*2 なお、質問に用いた集合は、手札に戻さず、使用済みのカードとして公開しておきます。

伏せられた相手の集合を  X、手札から公開された集合を  A とすると、質問を受けたプレイヤーは、「 X \subset A であるか」「 X \supset A であるか」の 2 つを返答しなければなりません。

すなわち、返答のパターンは以下の 4 通りとなります:

   X \subset A である  X \subset A でない
 X \supset A である  X = A X A に一致する  X \supsetneq A X A より大きい
 X \supset A でない  X \subsetneq A X A より小さい  X A と "無関係" である

のいずれであるかを返答しなければなりません。

以下に、javascript で動作する質問プログラムを用意しました。例えば  A = \{1, 3\} として質問したい場合、1 と 3 にチェックを入れて call ボタンを押すことで質問を行えます。試しに相手の集合  X を当ててみてください。(reset ボタンで、相手の集合  X をランダムにリセットできます)

1 2 3 4 5  

質問を繰り返して、めでたく  X = A3 回 的中させることができたら、そのプレイヤーは勝利となります。

なお、伏せた集合を当てられてしまった側のプレイヤーは、伏せていた集合を表向きにして、使用済みカードとして公開しておきます。そして、自分の手札から新たに集合を 1 つ任意に選び、ふたたび手元に伏せて置きます。そして、さきほど質問を的中させたプレイヤーから 手番を再開します。*3

質問は慎重に

質問には手札を使用することになりますが、このゲームには手札を補充する手段がないので、質問に同じ集合を 2 回以上使うことはできません

しかし、以上のルールでは、「相手が伏せている集合が自分の手札にない」場合に、どうあがいても質問を的中させることができませんね。そこで、第 2 の質問方法として、「手札を 1 枚公開し、そのカードに書かれた集合とは関係なく 1 つ集合  A を指定して、 X = A であるか を尋ねる」ことを認めます。*4 この質問方法では、集合  A の指定が手札によらず任意であるかわりに、質問で得られる情報が少なくなっています。ここぞというときに使ってくださいね。

もうひとつ、質問の際に注意しなければならないことがあります。集合トランプの各色に同じ集合がちょうど 1 枚しかないという性質上、質問に使った集合は、自分が伏せている集合の候補から除外される ことになります。質問に用いる集合を適切に選ばないと、かえって自分の伏せている集合に関する情報を与えてしまうかもしれません。

プレイ動画

数学デー にて  \text{sh} \hspace{0.2pt} U \hspace{-1.1pt} \text{gor} \hspace{0.5pt} \emptyset \hspace{0.5pt} \text{n} を遊んでいた際の動画を、以下に記載します:

まとめ

NumerØn の集合トランプバージョン、 \text{sh} \hspace{0.2pt} U \hspace{-1.1pt} \text{gor} \hspace{0.5pt} \emptyset \hspace{0.5pt} \text{n} の紹介でした。NumerØn 同様に、攻撃や防御に使えるアイテムを考えてみるのも面白いかもしれませんね。それでは、次回もお楽しみに~

*1:「しゅごろん」。「集合論」からきています

*2:質問をしなかったり、2 回以上質問を行ったりしてはいけません

*3:質問が当たれば、連続で手番を行えるということです(神経衰弱的に、といえばわかりやすいでしょうか)

*4:すなわち、質問を受けたプレイヤーは「 X = A である」「 X \ne A である」の 2 択で返答することになります

分割ババ抜き

(普通の)トランプで遊べる有名なゲームのひとつに「ババ抜き」がありますね。今回紹介するのは、ババ抜きに集合要素と戦略性が加わったゲーム、分割ババ抜き です!

この記事は、数学ゲーム Advent Calendar 2018 の 19 日目を担当しています:

概要

このゲームでは、集合の 分割 という概念をコンセプトにしています。*1

ざっくりと言えば、例えば

 \{1, 2, 4\} \{3, 5\}
 \{1, 3\} \{2, 5\} \{4\}
 \{1\} \{2\} \{3\} \{4\} \{5\}

 
は、それぞれ  U = \{1, 2, 3, 4, 5\} の分割になっている、といった感じです。詳しくは、以下の記事を参照するか、wikipedia などを当たってください:

ルール

通常のババ抜きよろしく、プレイヤーを 2 人以上用意して、よくシャッフルした集合トランプ全 64 枚をできるだけ均等になるように配ります。ここで、「最初にカードを 1 枚抜いておく」とかいう処理は必要ありません。64 枚すべてを配りきってしまってください。

このあとのゲームの流れは、通常のババ抜きとほとんど同様です。適当な方法で順番を決めて、順番に隣のプレイヤーの手札からカードを 1 枚引くことを繰り返していき、手札が早くなくなった順に順位がつきます。

カードの減らし方

さて、肝心なのは「捨てられるカードの条件」ですね。

手札中にある 合計 2 枚とは限らない カードの組み合わせが、 U の分割になっているならば、手札から除外することができます。(ただし、同じ集合が書かれたカードを 2 枚同時に組み合わせることはできないものとします)

具体例を挙げると、以下のような組み合わせであればよいです:

  •  \{1, 2, 4\},\ \{3, 5\}
  •  \{1, 3\},\ \{2, 5\},\ \{4\}
  •  \{1\},\ \{2\},\ \{3\},\ \{4\},\ \{5\}
  •  U(1 枚でもよい!)

逆に、以下のような組み合わせはダメです:

  •  \emptyset, \{1, 3, 5\}, \{2, 4\}空集合が含まれている)
  •  \{1, 5\},\ \{2\},\ \{3\}(全体の和が  U にならない)
  •  \{1, 2, 4\},\ \{1, 3\},\ \{5\}(共通部分が  \emptyset にならない組 *2 が含まれている)
  •  \{1, 2, 3, 4\},\ \{1, 2, 3, 4\},\ \{5\}(同じ集合が書かれたカードが 2 枚含まれている *3

ここで「手札から除外する」なんて遠回しな表現をしていることにはちゃんと理由があります。というのも、除外するカードの枚数によって「除外されたカードの行き先」が変わります:

f:id:muratsubo:20181219033145p:plain
カードの移動のしかた

2 枚の組み合わせで除外する場合は、単に捨て札になります。(画像左上の矢印が示す移動)

しかし、2 枚ではない場合は、除外したカードを自分の場にストックしておくことができます。(画像下の矢印が示す移動)

そして、手札のカード 1 枚 と自分の場札のカード 1 枚 で、先ほどの条件 1. ~ 3. を満たす *4 組み合わせがあれば、その 2 枚を捨て札へ送ることができます。(画像右上の矢印が示す移動)

すなわち、カードを自分の場にストックしておくと、捨てられるカードの種類が増えるので、有利にゲームを進められるというわけです。

なお、このゲームの勝利条件はあくまで「手札をなくすこと」とします。つまり、自分の場に何枚カードが残っていようが、手札がなくなったらその時点で勝ち抜けです。

「ババ」の所在

以上のルールからわかるように、 \emptyset は捨てることができません。ババですね。

さらに、3 枚以上の組み合わせでカードが手札から除外されると、世界のババの数が変動します

例えば、あるプレイヤー A が  \{1\}, \{2, 4\}, \{3, 5\} という組み合わせでカードを手札から除外、自分の場札にストックしたとします。すると、 \{1\}"無駄遣い" されてしまったために、世界に 2 枚ある  \{2, 3, 4, 5\} のうちどちらか 1 枚が出せないことが確定します。ただし、プレイヤー A だけは例外で、手札にババとなった  \{2, 3, 4, 5\} が来てしまっても、場札の  \{1\} と組み合わせて捨てることができるのです。

ゲームの終わり方

以上で述べた通り、このゲームにおけるババの枚数は一定ではありません。というか、そもそも初期状態でババが 2 枚存在しているので、通常のババ抜きのように「最後の 1 人になったらゲーム終了!」とすることはできません。

そこで、プレイヤー全員の手札をすべて合わせても、その中から  U の分割が作れない 状態になったら、ゲームを終了して、その時点で持っているカードの枚数が少ない順に、残ったプレイヤーの順位を定めることにしましょう。

そして、そのような状態になっているかどうかを判定するためには、場札を見ればよいです。具体的には、

(ババの枚数)≦ 2 +(場の  U でないカードの数)- 2 ×(場の中で作れる補集合のペアの数)

 
が成り立ちます。

第 1 項の 2 は、どうやっても捨てられない  \emptyset 2 枚分のことで、第 2 項がそれ以外のババの枚数を表しています。基本的には「場にあるカードの補集合」がババとして残ることになるのですが、場の中で補集合の関係にある組み合わせが存在する場合は、それらが "打ち消し合う" ことで、ババの枚数には影響しなくなります。この補正項が、第 3 項というわけです。よって、上の式は

(ババの枚数)≦ 2 +(場の  U でないカードのうち、補集合のペアになるものを除いた枚数)

 
と言い換えることもできます。こちらの方が見た目はスッキリしますね。

なお、= ではなく ≦ なのは、場にあるカードの補集合になっている手札を 3 枚以上集めることではじめて  U の分割を作ることができる場合が存在するためです。とはいえ、ゲームの最終局面においては、このようなケースが生じている可能性はきわめて低いと考えられる*5 ため、等号が成立していると思ってよいでしょう。

以上を踏まえると、ゲームの終了判定は、カードの枚数が十分に減った状態において、

(各プレイヤーが持つ手札の枚数の合計)
= 2 +(場の  U でないカードのうち、補集合のペアになるものを除いた枚数)

 
が成り立っているかを確認する、という形で行うことができます。

f:id:muratsubo:20181219034940p:plain
3 人プレイ時における、各プレイヤーの場の一例

例を挙げると、このような場においては、現在のババの枚数は  2 + 9 - 2 \times 1 = 9 と計算されます。 この状況においてババになっているカードは、 \emptyset 2 枚の他には  \{1, 2, 4\}, \{1, 3, 5\}, \{3, 4, 5\}, \{1, 2, 3, 4\}, \{1, 2, 3, 5\}, \{1, 2, 4, 5\}, \{2, 3, 4, 5\} ですね。これらを 2 枚組にして捨てるには、場にあるカードが必要となるためです。

派生ルール

 \emptyset の扱い

分割ババ抜きでは、カードを除外できる条件を「 U の分割であること」としていましたが、これを

 \emptyset を含むことを許した  U の分割であること」

 
と変更してみるとどうでしょう。すなわち、以下のような組み合わせでカードを捨ててもよいことにします:

  •  \{\emptyset,\ \{1, 2\},\ \{3, 4, 5\}\}
  •  \{\emptyset,\ \{1, 3\},\ \{2, 5\},\ \{4\}\}
  •  \{\emptyset,\ U\}

このルールでは、カード 2 枚からなる分割に  \emptyset をくっつけることで、カード 3 枚からなる分割にすることができます。そうすれば、自分の場にストックできるようになりますね。 \emptyset の捨て方に戦略が生まれます。

ちなみに、このルールを採用すると、ゲーム開始時においてババが世界に 1 枚も存在しません。ババ抜きとは。

補集合ババ抜き

上の条件をさらに変更して、

ちょうど 2 枚のカードからなる \emptyset を含むことを許した  U の分割であること」

 
とすれば、ゲームが非常にシンプルになります。というのも、要は「補集合の関係にあるペアが捨てられる ババ抜き」になるのです。あまり集合に慣れ親しんでいない方々は、はじめはこちらのルールで、集合トランプでのババ抜きに慣れるのがよいかもしれません。

このルールでは、通常のババ抜きと同様に、はじめに何らかのカード( U とか?)を 1 枚抜いておく必要があることに注意してください。

まとめ

その名前のイメージとは裏腹に、心理戦だけでなく戦略性もが生じる 分割ババ抜き の紹介でした。また、もっとシンプルな、いわゆる "ババ抜き" と同じ感覚で遊べる 補集合ババ抜き も、"分割ババ抜きの特殊な場合" として定まりました。

ところで、ババ抜きの他にも、通常のトランプにおける有名なゲームにはいろいろ、例えば「大富豪」「7 並べ」などがありますね。これらに "対応した" 集合トランプゲームもあるので、順を追って紹介したいと思います。お楽しみに~

*1:「概念をコンセプトにする」って「画像はイメージです」みたいな響きですね

*2:この場合は  \{1, 2, 4\} \{1, 3\} のことですね。どちらにも  1 が含まれています

*3:集合トランプのカードではなく "単なる集合" の集合として考えるならば、 \{\{1, 2, 3, 4\},\ \{1, 2, 3, 4\},\ \{5\}\} = \{\{1, 2, 3, 4\},\ \{5\}\} であり、これはちゃんと  U の分割になっています。しかし、分割ババ抜きにおいては、異なるカードは区別して考えることにします。

*4:これは「2 枚が補集合の関係にある(ただし  \emptyset, U の組み合わせを除く)」と言っても同値ですね

*5:ゲーム終盤まで  \{1\}, \{2, 4\} などの要素数が少ない集合が多く残ることは、意図的でもない限りあまり起こらなさそうですよね