重箱のおすみつき

普段目を向けない、すみっこにスポットライトを当てるブログ

じゃんけんの数学

「じゃんけん」と言えば、「最初はグー、じゃんけんポイ*1」から始まる勝敗を決める三すくみのゲームのことですね。

「最初はグー」という部分は、あの志村けんさんが発案とのこと*2

今回はその「じゃんけん」を数学で考えてみたいと思います。

「じゃんけん」、「数学」と聞くと、確率の話か?と思われるかも知れませんが、 この記事では「ベクトルの内積外積」の話をします。

目次

じゃんけんのルール

不要かもしれませんが、じゃんけんのルールについて共通認識を持つために、ルールの復習をします。

ルール

  1. 二人以上でおこなう
  2. 三種類の手札をもつ
  3. 手札には三すくみの強弱関係がある

手順

  1. 掛け声を合図に手札を一つ出す
  2. 手札の強弱関係から勝敗を判定する。
  3. 勝敗が決まらない(あいこ)の場合は手順1に戻る。勝敗が決まれば、じゃんけん終了。

だいたいこのような感じでしょうか。 手を使わなくても良かったり、外国だと呼び方が違ったりするので、「手札」と書きました。

ただし、この記事では便宜的に、手札を「グー」、「チョキ」、「パー」で表現するものとします。 強弱関係はご存知の通り、図1の通りとします。

f:id:jab_a_corner:20200708235902p:plain
図1:「グー」、「チョキ」、「パー」の強弱関係

じゃんけんの数学

では、本題に入ります。

じゃんけんの勝敗の決め方をベクトルの内積外積で表現します。

チョットナニイッテルカワカラナイという方も、ベクトルの内積外積さえ理解していれば、難しいことはありませんので頑張ってください。

グー、チョキ、パーの定義

さて、「グー」ベクトル、「チョキ」ベクトル、「パー」ベクトルを定義します。

三次元直交座標系において、それぞれ

$$ \begin{aligned} \bm{g} &= \{1,0,0 \} \quad (\text{グー}) \\ \bm{c} &= \{0,1,0 \} \quad (\text{チョキ}) \\ \bm{p} &= \{0,0,1 \} \quad (\text{パー}) \end{aligned} $$

と定義します*3

勝敗の計算

定義したベクトルを用いて、じゃんけんの勝敗の計算をおこないます。

二人の対戦者をAさんとBさんと呼ぶことにします。

そして、

Aさんが出す手札を \( \bm{a} \), Bさんが出す手札を \( \bm{b} \) とします。

ここでようやく、ベクトルの内積外積が登場します。

まず、ベクトルの外積を用いて、\( \bm{a} \times \bm{b} \) を計算し、この結果と \( \bm{g} + \bm{c} + \bm{p} \) ベクトルとの内積をとります。

すなわち、

$$ \begin{aligned} &(\bm{a} \times \bm{b}) \cdot (\bm{g} + \bm{c} + \bm{p}) \\ &= \begin{cases} +1 \quad (\text{Aさんの勝利}) \\ 0 \quad \quad (\text{あいこ}) \\ -1 \quad (\text{Bさんの勝利}) \end{cases} \end{aligned} $$

を計算します。

その結果、答えが+1ならば、Aさんの勝利、 一方で答えが-1ならば、Bさんの勝利となり、 また 0ならば、"あいこ" となります。

割とシンプルですが、これがじゃんけんの勝敗を決める式です。

具体的に計算してみる

これが式です(ドャぁ)

と言われても、本当か?と疑われると思います*4

なので、例題をいくつか解いてみます。

内積外積の性質

...と、その前に内積外積の性質についてカンペを作っておきます。

前述の

$$ \begin{aligned} \bm{g} &= \{1,0,0 \} \quad (\text{グー}) \\ \bm{c} &= \{0,1,0 \} \quad (\text{チョキ}) \\ \bm{p} &= \{0,0,1 \} \quad (\text{パー}) \end{aligned} $$

を図2に示します。

f:id:jab_a_corner:20200709010508p:plain
図2:デカルト座標系と「グー」、「チョキ」、「パー」ベクトル

これらは単位ベクトルとなっています。 ベクトル間のなす角は90度となっています。

内積の性質は

$$ \begin{aligned} \bm{g} \cdot \bm{g} &= \bm{c} \cdot \bm{c} = \bm{p} \cdot \bm{p} = 1 \\\\ \bm{g} \cdot \bm{c} &= \bm{c} \cdot \bm{p} = \bm{p} \cdot \bm{g} = 0 \end{aligned} $$

です。内積は交換法則が成り立ちます。

より詳しくは、こちらのサイトを参考にしてください。->(基本ベクトルの内積の計算)

外積の性質は

$$ \begin{aligned} \bm{g} \times \bm{g} &= \bm{c} \times \bm{c} = \bm{p} \times \bm{p} = \bm{0} \\\\ \bm{g} \times \bm{c} &= - \bm{c} \times \bm{g} = \bm{p} \\\\ \bm{c} \times \bm{p} &= - \bm{p} \times \bm{c} = \bm{g} \\\\ \bm{p} \times \bm{g} &= - \bm{g} \times \bm{p} = \bm{c} \end{aligned} $$

です。外積は交換法則が成り立ちません。

より詳しくは、こちらのサイトを参考にしてください。->(基本ベクトルにおける外積)

例1 グー対チョキ

この場合、

$$ \begin{aligned} \bm{a} &= \bm{g} \quad (\text{Aさんがグー}) \\\\ \bm{b} &= \bm{c} \quad (\text{Bさんがチョキ}) \end{aligned} $$

です。

外積を計算すると、

$$\bm{a} \times \bm{b} = \bm{g} \times \bm{c} = \bm{p}$$

となります。

\( \bm{g} + \bm{c} + \bm{p} \) との内積を計算すると、

$$ \begin{aligned} &(\bm{a} \times \bm{b}) \cdot (\bm{g} + \bm{c} + \bm{p}) \\\\ &= \bm{p} \cdot (\bm{g} + \bm{c} + \bm{p}) \\\\ &= \bm{p} \cdot \bm{p} = +1 \end{aligned} $$

となります。よって、Aさんの勝利と判定されます。

これは正しいですね。

例2 パー対チョキ

この場合、

$$ \begin{aligned} \bm{a} &= \bm{p} \quad (\text{Aさんがパー}) \\\\ \bm{b} &= \bm{c} \quad (\text{Bさんがチョキ}) \end{aligned} $$

です。

外積を計算すると、

$$\bm{a} \times \bm{b} = \bm{p} \times \bm{c} = - \bm{g}$$

となります。

\( \bm{g} + \bm{c} + \bm{p} \) との内積を計算すると、

$$ \begin{aligned} &(\bm{a} \times \bm{b}) \cdot (\bm{g} + \bm{c} + \bm{p}) \\ &= - \bm{g} \cdot (\bm{g} + \bm{c} + \bm{p}) \\ &= - \bm{g} \cdot \bm{g} = -1 \end{aligned} $$

となります。よって、Bさんの勝利と判定されます。

これも正しいですね。

何故上手くいくのか

例題を解いてみましたが、証明はしていません。

しかし、全ての組み合わせを計算すれば、計算式は正しく勝敗を算出すると確認できます。

この計算式自体は、導出したというか、 フィーリングで作ったものなので、 導出過程もありません。

何故、計算が上手くいくのか少し考えてみると、 じゃんけんの三すくみの関係と3次元ベクトルの外積の循環の性質が対応しているからだと考えます。

特に、外積は1次元と3次元と7次元で定義できるものらしく、 偶然3という数字が使われていることがミソかもしれません。

3人以上の場合は?

残念ながら、この計算式では計算できません。

良かったら作っていただけませんか?

パウリ行列でもいける

実は、フィーリングで先に思いついたのはこちらでして、 パウリ行列の掛け算でもじゃんけんを表現することが出来ます。

パウリ行列の復習(?)をしましょう。

パウリ行列は次の3つの行列から成ります。

$$ σ_1 = \begin{pmatrix} 0 & 1 \\ 1 & 0 \end{pmatrix} $$

$$ σ_2 = \begin{pmatrix} 0 & -i \\ i & 0 \end{pmatrix} $$

$$ σ_3 = \begin{pmatrix} 1 & 0 \\ 0 & -1 \end{pmatrix} $$

ここで、 \( i \) は虚数単位です。

さらに、パウリ行列には次の性質があります。

$$ σ_1^2 = σ_2^2 = σ_3^2 = \begin{pmatrix} 1 & 0 \\ 0 & 1 \end{pmatrix} $$

$$ \begin{aligned} σ_1 σ_2 &= - σ_2 σ_1 = i σ_3 \\ σ_2 σ_3 &= - σ_3 σ_2 = i σ_1 \\ σ_3 σ_1 &= - σ_1 σ_3 = i σ_2 \end{aligned} $$

この性質が三次元ベクトルの外積に似ていると感じると、「クォータニオン(quaternion)」という数学が見えてくるかもしれません(見えるとは言っていない)。

「グー」、「チョキ」、「パー」をそれぞれ \( σ_1, σ_2, σ_3 \) に対応させ、 Aさんの手札を行列 \( A \)、Bさんの手札を行列 \( B \)とします。

すると、じゃんけんの勝敗の計算式を

$$ i \det(AB) = \begin{cases} 1 \quad (\text{Aさんの勝利}) \\ i \quad (\text{あいこ})(i \text{だけに...}) \\ -1 \quad (\text{Bさんの勝利}) \end{cases} $$

とすることができます。ここで、detは行列式を意味しています。つまり、行列A、Bを掛け算した結果の行列の行列式を計算せよ、ということです。ちなみに、虚数 \( i \) は計算結果を見やすくするため、便宜的につけました。無くても勝敗の判定は可能です。

試しにグー対チョキの場合を計算してみます。 ちなみに、この計算には行列の掛け算や虚数の計算や行列式の計算のやり方を勉強する必要があります。

$$ \begin{aligned} i \det(AB) &= i \det( σ_1 σ_2) = i^2 \det( σ_3) \\ &= -1 \times \begin{vmatrix} 1 & 0 \\ 0 & -1 \end{vmatrix} \\ &= (-1)^2 \\ &= 1 \end{aligned} $$

となり、Aさんの勝利と判定され、じゃんけんの勝敗を計算できました。 興味があれば他の手札のパターンでも計算してみてください。

終わりに

我々はじゃんけんの計算式を得たわけですが、 この式が実用的であるわけではないです。

賢いアルゴリズムを使えば、ベクトルの演算をするより低コストで計算できます。

では、この記事で何を思って欲しいかというと、「じゃんけんにも数学が潜んでいたんだなぁ」としみじみ感じて欲しいのです。

身近なゲームのルールに、数学が関係しているというのは、興味深いですよね*5

*1:掛け声は地域差があるかも

*2:- 日本じゃんけん協会

*3:ベクトルの表し方には、上に矢印→をつける方法と太字にする方法がありますが、本記事では後者で表現します。

*4:鵜呑みにせず、疑う姿勢は大事

*5:個人の感想です