4
エンタメ解説
文献あり

ジャグリングの数理

618
0
$$$$

はじめに

この記事は 物工/計数 Advent Calendar 2022 の14日目の記事です。

この記事では、私の趣味であるジャグリングと数学の関係について説明してみようと思います。

一応Mathlog内にジャグリングと数学の関連性について語った記事がないか確認しましたが0件でした(「juggling」で検索しても0件)。

「ジャグリング」の検索結果 「ジャグリング」の検索結果 ということはこれがMathlog初のジャグリングについて語った記事なわけですね。

「ジャグリングと数学って全く関係ないのでは?」と思った方も多いかもしれませんが、ジャグリングの技を有限非負整数列で表現する「サイトスワップ」なる概念は非常に重要で、ジャグリング界隈に広く普及しています。

こういった記事を書くのは初めてなので、嘘をいっぱい書いているかもしれません。そのときは教えてください。また、分かりやすく書ける自信はないので、分かりにくい部分は適宜参考文献などを参照してください。

ジャグリングのモデル化

サイトスワップを導入するにあたって、ジャグリングに以下のような制約を課します。

  1. ボールは左右交互に一定間隔で投げられる。
  2. 片手で複数のボールをキャッチ、投げることはない。

また、投げる物体は何でも良いのですが、ここではボールとして考えます。

ジャグリングダイヤグラム

1つ1つのボールの軌道を時間軸に沿って表したジャグリングダイヤグラムというものを考えてみます。例として、3ボールカスケード(最も基本的な技)のジャグリングダイヤグラムを描いてみましょう。

3ボールカスケードのジャグリングダイヤグラム 3ボールカスケードのジャグリングダイヤグラム

丸はボールを投げるタイミング、その下には左右どちらの手で投げるかを書いています。丸の中の数字は、投げたボールが何拍後にキャッチされるか、曲線はボールの遷移を示しています。この図が1.と2.の条件を満たしていることは容易に分かります。3ボールカスケードでは全てのボールが投げられてから3拍後にキャッチされています。次に、441と呼ばれるパターンのジャグリングダイヤグラムを見てみましょう。

441のジャグリングダイヤグラム 441のジャグリングダイヤグラム
このパターンも条件1.、2.を満たしていることが読み取れます。

サイトスワップ

条件1.、2.を満たすジャグリングダイヤグラムの丸の数字を周期的にならない最小の長さ(この長さ$p \in \mathbb{N}$周期と呼ぶ)だけ抜き出した数列をサイトスワップと呼びます。例えば、3ボールカスケードのサイトスワップは3であり周期は1、441はサイトスワップそのものであり周期は3です。441は144や414と表しても良いです。数の間をカンマで区切ることもありますが、ここではそのまま続けて書くことにします。

サイトスワップには10以上の数字が含まれることもありますが、数字を並べて書いたときに1桁か2桁かを混同してしまうことを避けるため、10以上の数字を$a, b, c, \cdots$と表記します。すなわち、$a = 10, b = 11, c = 12, \cdots ,z = 35$です。人間には35より大きい数字が出でくるようなパターンを投げるのは不可能なので、この記法は35以上の数字に対しては定義されていません。

数学的な定義

次に、サイトスワップを数学的に定義することを目指します。そのために、いくつかの用語を定義します。

ジャグリングパターンと高さ関数

全単射$f:\mathbb{Z} \to \mathbb{Z}$が任意の$t \in \mathbb{Z}$に対し$f(t) \geq t$かつ、高さ関数$h_f(t) = f(t) - t$$h_f(t + kp) = h_f(t)$を満たすとき、$f$を周期$p$ジャグリングパターンと呼ぶ。

$t$拍目に投げたボールが、次は$f(t)$拍目に投げられる考えてください。$f(t) \geq t$は投げたボールが時間を逆行しないことを保証しています。$f$が全単射であるということは、条件2.に対応しています。実際、単射でなければ2つ以上のボールを同時にキャッチする拍があることになるので、条件2.を満たしません。また、全射でなければ何も持っていないはずの手からボールを投げることになってしまい不適切です。$h_f(t)$はジャグリングダイヤグラムにおける丸の中の数字と対応しています。$h_f(t + kp) = h_f(t)$はサイトスワップの周期が$p$であることから要請されます。

3ボールカスケード

3ボールカスケードでは、
$$f(t) = 3 + t, \quad h_f(t) = 3$$
であることがジャグリングダイヤグラムより読み取れます。

441

441では、
$$f(t) = \begin{cases} 4 + t \quad (t \equiv 0, 1 \pmod 3)\\ 1 + t \quad (t \equiv 2 \pmod 3)\\ \end{cases}\quad , h_f(t) = \begin{cases} 4 \quad (t \equiv 0, 1 \pmod 3)\\ 1 \quad (t \equiv 2 \pmod 3)\\ \end{cases}$$
となります。

では、これらの概念を用いてサイトスワップを定義しましょう。

サイトスワップ

有限非負整数列$\{a_i\}_{i = 0}^{p-1}$に対し、任意の$i \in \mathbb{Z}/p\mathbb{Z}$について$h_f(i) = a_i$となるようなジャグリングパターン$f:\mathbb{Z} \to \mathbb{Z}$が存在する時、数列$\{a_i\}_{i = 0}^{p-1}$サイトスワップと呼ぶ。また、数列がサイトスワップとなるとき、その数列はJugglableであると言う。

先に挙げた3や441はJugglableな数列です。

Jugglableな数列その1

531はJugglableな数列です。実際、 $$f(t) = \begin{cases} 5 + t \quad (t \equiv 0 \pmod 3)\\ 3 + t \quad (t \equiv 1 \pmod 3)\\ 1 + t \quad (t \equiv 2 \pmod 3)\\ \end{cases}\quad , h_f(t) = \begin{cases} 5 \quad (t \equiv 0 \pmod 3)\\ 3 \quad (t \equiv 1 \pmod 3)\\ 1 \quad (t \equiv 2 \pmod 3)\\ \end{cases}$$とすれば良いことが分かります。

Jugglableな数列その2

a86411はJugglableな数列です。ここで、$a = 10$であることに注意してください。

Jugglableではない数列

ap2022はJugglableな数列ではありません。

例4と5はJugglableか判定するのが難しいですが、次で示す判定法を用いれば容易に判断することができます。

Jugglable性の判定

任意の有限非負整数列がサイトスワップになるわけではありません。例えば、21という数列を考えてみましょう。この数列に従ってジャグリングダイヤグラムを考えると次のようになります。

21のジャグリングダイヤグラム? 21のジャグリングダイヤグラム?

このダイヤグラムは条件2.を満たしていません。実際、奇数拍で同時に2つのボールをキャッチしていますし、偶数拍では持っていないはずのボールを投げています。よって数列21はJugglableではありません。

定義に沿って数列がJugglableであるかを考えるのは面倒なので、与えられた数列がJugglableであるかを判定する別の方法を考えていきましょう。そのために、2つの補題を示します。

$f$が周期$p$のジャグリングパターン$\Longrightarrow$$f(t) + kp = f(t + kp)$が任意の$t \in \mathbb{Z}/p\mathbb{Z}, k \in \mathbb{Z}$について成り立つ。

$h_f(t + kp) = h_f(t)$より従う。

$f$を周期$p$のジャグリングパターンとする。このとき、
$$f' \colon \mathbb{Z}/p\mathbb{Z} \to \mathbb{Z}/p\mathbb{Z}; t \longmapsto f(t) \pmod p $$
はwell-definedで全単射。すなわち,$f'$$\mathbb{Z}/p\mathbb{Z}$の置換である。

補題1より、$t \equiv s \pmod p$ならば$f(t) \equiv f(s) \pmod p$である。これはすなわち$t \equiv s \pmod p$ならば$f'(s) \equiv f'(t) \pmod p$であることを示しているから$f'$はwell-definedである。次に全単射性を示すが、全射性のみ示せば十分。$t \in \mathbb{Z}/p\mathbb{Z}$とする。$f$は全単射であるから、$f(s) = t$を満たす$s \in \mathbb{Z}$がある。ここで補題1より、$s' = s \pmod p$とすれば、$s' \in \mathbb{Z}/p\mathbb{Z}$であって$f(s') \equiv t \pmod p$である。よって$f'$は全射であることが示せた。

補題2はジャグリングパターン$f$に対しある置換$\pi_{f}$があって、$$f(t) \equiv \pi_{f}(t) \pmod p$$が成立することを示しています。以上の補題より、次の定理を得ます。

Jugglable性の判定

有限非負整数列$\{a_i\}_{i=0}^{p-1}$がJugglableである。$\Longleftrightarrow$ 写像 $$\phi_{\{a_i\}} \colon \mathbb{Z}/p\mathbb{Z} \to \mathbb{Z}/p\mathbb{Z} ; i \longmapsto a_i + i \pmod p$$
が全単射。

($\Rightarrow$)数列$\{a_i\}_{i = 0}^{p-1}$がJugglableであるとする。すなわち、あるジャグリングパターン$f$があって、$h_f(i) = a_i$である。補題2より任意の$i \in \mathbb{Z}/p\mathbb{Z}$に対し$f(i) \equiv \pi_{f}(i) \pmod p$となる置換$\pi_{f}$が存在するが、
$$a_i = h_f(i) = f(i) - i \equiv \pi_{~f}(i) - i \pmod p$$
より、$a_i + i \equiv \pi_{f}(i) \pmod p$が得られる。置換は全単射であるから、$\phi_{\{a_i\}}$も全単射である。

($\Leftarrow$)$\phi_{\{a_i\}}$が置換であったとする。$\{a_i\}_{i = 0}^{p-1}$がJugglableであることを示すには任意の$i \in \mathbb{Z}/p\mathbb{Z}$に対し$h_f(i) = a_i$となるようなジャグリングパターン$f$を見つければ良い。数列$\{a_i\}_{i=0}^{p-1}$を拡張し、$j \in \mathbb{Z}$に対し$a_j = a_i \left(j \equiv i \pmod p\right)$と定義する。ここで、$$f \colon \mathbb{Z} \to \mathbb{Z} ; j \longmapsto a_j + j$$
という関数を考え、これがジャグリングパターンとなっていることを示す。$h_f(j) = a_j$$f$の作り方から満たされていることがすぐ分かるから、任意の$k,j \in \mathbb{Z}$に対し$h_f(j + kp) = h_j(j)$、任意の$i \in \mathbb{Z}/p\mathbb{Z}$対し$f(i) \geq i $$f$が全単射になっていることを確かめれば良い。$ \displaystyle{ \begin{align} h_f(j + kp) &= f(j + kp) - (j + kp) \\ &= a_{j + kp} \\ &= a_j + j - j\\ &= f(j) - j\\ &= h_f(j) \end{align} }$
より$h_f(j + kp) = h_j(j)$は成立。また、$f(i) \geq i $$a_i$が非負であることから明らか。
あとは$f$が全単射であることを示す。

(単射性)$s, t \in \mathbb{Z}$に対し$f(s) = f(t)$であったとする。このとき、$f$の定め方から$\phi_{\{a_i\}}(s) = \phi_{\{a_i\}}(t)$である。$\phi_{\{a_i\}}$は全単射であると仮定しているから、$s \equiv t \pmod p$が成り立つ。すなわち、$a_s = a_t$である。これと$f(s) = f(t)$より$s = t$が言えるから、単射性は示された。

(全射性)$\phi_{\{a_i\}}$は全単射であるから、ある$s' \in \mathbb{Z}/p\mathbb{Z}$に対し、$\phi_{\{a_i\}}(s') \equiv t \pmod p$となる$t \in \mathbb{Z}$がある。すなわち、$a_{s'} + s' \equiv t \pmod p$が成り立っている。ここで、$a_{s'} + s' + kp = t$とすると、$a_{s'} = a_{s' + kp}$であるから
$ \displaystyle{ \begin{align} f(s' + kp) &= a_{s' + kp} + s' + kp\\ &= a_{s'} + s' + kp\\ &= t \end{align} }$
よって、$s =s' + kp$とおけば、任意の$s \in \mathbb{Z}$に対して$f(s) = t$となる$t \in \mathbb{Z}$がとれるため、$f$は全射である。

a86411がJugglableであることを定理1を用いて確かてみましょう。$a_0 = a, a_1 = 8, \cdots , a_5 = 1$とすると、
$ \displaystyle{ \begin{align} \quad \phi_{\{a_i\}}(0) = 4, \phi_{\{a_i\}}(1) = 3, \phi_{\{a_i\}}(2) = 2 \\ \phi_{\{a_i\}}(3) = 1, \phi_{\{a_i\}}(4) = 5, \phi_{\{a_i\}}(5) = 0 \end{align} }$
であるから、$\phi_{\{a_i\}}$は全単射です。よってa86411はJugglableです。

ボールの個数

与えられた数列がJugglableであるかは定理3を用いて判定することができるようになりました。しかし、何個のボールが必要なのかを求めることはできません。実際にジャグリングする際に必要なボールの個数をサイトスワップから求めることを考えてみましょう。

その前に、サイトスワップの重要な性質を導きます。

siteswap

siteswap

$s = \{a_i\}_{i =0}^{p-1}$を長さ2以上の有限非負整数列とする。$0 \leq m < n \leq p-1, n - m < a_m$を満たす$n, m$に対し、数列$s_{m, n}$
$$s_{m, n} = \{a'_i\}_{i =0}^{p-1} = \begin{cases} a_i \quad (i \not = m, n)\\ a_n + (n-m) \quad (i = m)\\ a_m - (n-m) \quad (i = n) \end{cases}$$
と定義する。このように、数列$s$$s_{m,n}$へ変換することをsiteswapと呼ぶ。

同じ名前でややこしいので、この記事では数列を性質を表す方を「サイトスワップ」、数列の変換を表す方を「siteswap」と表記を分けています。

数列$a_0 = 4, a_1 = 6, a_2 = 1, a_3 = 3, a_4 = 1$に対して$s_{0,1}$$a'_0 = 6 + (1-0) = 7, a'_1 = 4 - (1 -0) = 3, a'_2 = 1, a'_3 = 3, a'_4 = 1$です。

さて、このsiteswapに関して次の2つの定理が成り立ちます。

$s = \{a_i\}_{i =0}^{p-1}$を長さ2以上の有限非負整数列とする。$s$がJugglableである $\Leftrightarrow$ $s$にsiteswapを施した$s_{m, n} = \{a'_i\}_{i =0}^{p-1}$がJugglableである。

$s$がJugglableであると仮定する。$s_{m,n}$の定義より、
$ \displaystyle{ \begin{align} \begin{cases} a'_n + n = a_m + m\\ a'_m + m = a_n + n\\ a'_i + i = a_i + i \quad (i \not = m, n) \end{cases} \end{align} }$
が成り立つ。すなわち、写像
$$\phi_{\{a'_i\}} \colon \mathbb{Z}/p\mathbb{Z} \to \mathbb{Z}/p\mathbb{Z} ; i \longmapsto a'_i + i \pmod p$$
は、写像$$\phi_{\{a_i\}} \colon \mathbb{Z}/p\mathbb{Z} \to \mathbb{Z}/p\mathbb{Z} ; i \longmapsto a_i + i \pmod p$$と互換$(m,n)$の合成で書ける。$\phi_{\{a_i\}}$と互換$(m,n)$は全単射であるから、$\phi_{\{a'_i\}}$も全単射。よって$s_{m,n}$はJugglableである。逆に関しても同様の議論で示すことができる。

siteswapは数列の平均を保つ。すなわち、
$$\displaystyle{\frac{1}{p}\sum_{i=o}^{p-1} a_i} = \displaystyle{\frac{1}{p}\sum_{i=o}^{p-1} a'_i}$$

$a'_m + a'_n = a_n + (n-m) + a_m - (n-m) = a_n + a_m$より示せる。

siteswapは数列のJugglable性と平均を保つ変換であることが分かりました。

サイクリックシフト

ここで、また別の操作を定義します。

サイクリックシフト

数列$s = \{a_i\}_{i =0}^{p-1}$に対し、数列$s_{\rightarrow} = \{a_{~i-1 \pmod p}~\}_{i =0}^{p-1} = a_{p-1} a_0 a_1 \cdots a_{p-2}$のこと、ないし$s_{\rightarrow}$への変換をサイクリックシフトと呼ぶ。また、$k$-シフト$k$回サイクリックシフトを施した数列とし、$s_{\overrightarrow{k}}$と書く。

サイクリックシフトに対しても同様の定理が成り立ちます。

$s = \{a_i\}_{i =0}^{p-1}$を有限非負整数列とする。$s$がJugglableである $\Leftrightarrow$ $s_{\rightarrow}$がJugglableである。

$s$がJugglableであると仮定する。$s_{\rightarrow}$の定義より、
$$\phi \colon \mathbb{Z}/p\mathbb{Z} \to \mathbb{Z}/p\mathbb{Z} ; i \longmapsto a_i + i + 1 \pmod p$$
が全単射であることを示せば、$s_{\rightarrow}$がJugglableであることが示せるが、$s$のJugglable性よりこれは明らかに全単射。

サイクリックシフトは数列の平均を保つ。

サイクリックシフトは数列の順番を入れ替えているだけであるから、数列の平均は保たれる。

ジャグリングダイヤグラムを考えれば、サイクリックシフトがJugglable性を保つことは明らかですね。これで441も414も144もJugglableであることが数学的に示せました。

平均の定理

本題に入る前に補題を示します。

$\{a_i\}_{i =0}^{p-1}$をJugglableな数列とする。このとき、
$$b = \frac{1}{p}\sum_{i = 0}^{p-1}a_i$$
は非負整数である。

$\{a_i\}_{i =0}^{p-1}$はJugglableであるから、
$$\sum_{i = 0}^{p-1}(a_i + i) \equiv \sum_{i = 0}^{p-1} i \pmod p$$
よって、
$$\sum_{i = 0}^{p-1}(a_i + i) \equiv 0 \pmod p$$
$\{a_i\}_{i =0}^{p-1}$は非負数列であるから、$\frac{1}{p}\sum_{i = 0}^{p-1}a_i$は非負整数である。

さて、ようやく準備が終わりました。以上の道具を用いて2つの定理を示しましょう。

$\{a_i\}_{i =0}^{p-1}$をJugglableな数列とし、$b = \frac{1}{p}\sum_{i = 0}^{p-1}a_i$とする。このとき、数列$\{a_i\}_{i =0}^{p-1}$にsiteswapとサイクリックシフトを作用させると数列$\overbrace{bb\ldots b}^{p個}$に変換することができる。

siteswapとサイクリックシフトは逆元を持つ操作であるから、与えられたJugglableな数列$s = \{a_i\}_{i =0}^{p-1}$にsiteswapとサイクリックシフトを施して$\overbrace{bb\ldots b}^{p個}$へと変換できることを示せば良い。そこで、以下のアルゴリズムを考える。

  1. $s$が定数列であれば操作を終える。そうでないならば2.へ進む。
  2. $i$$a_i$$s$の中で最大かつ$a_{i+1} < a_i$となるように選ぶ。$s$にi-シフトを施し、先頭に$a_i$が、その次に$a_{i+1}$が来るようにし、3.へ進む。
  3. $s \to s_{1,2}$とsiteswapを施し、1.へ戻る。

手順2.で$a_i - a_{i+ 1} = 1$の場合は手順3.でsiteswapを施しても最大値と最大値をとる$a_i$の個数は変わらない。しかし、$s$はJugglableであるから、定理3より$a_i - a_{i+ 1} =1$とはなり得ない。よって、手順3.によって数列$s$の最大値は必ず1だけ減るか、または最大値をとる$a_i$の個数が1だけ減る。よってこのアルゴリズムは有限回で終了し、それは$s$が定数列へと変換された時である。さらに定理5と7より数列の平均は保たれるから、このアルゴリズムで数列は$\overbrace{bb\ldots b}^{p個}$へ変換されることが分かる。

平均の定理

$\{a_i\}_{i =0}^{p-1}$をJugglableな数列とする。このとき、
$$b = \frac{1}{p}\sum_{i = 0}^{p-1}a_i$$
とすると、$b$$\{a_i\}_{i =0}^{p-1}$をジャグリングをするのに必要なボールの個数と一致する。

$\overbrace{bb\ldots b}^{p個}$をジャグリングするにはb個のボールが必要なのは明らか(b拍後に手に戻ってくる高さでボールを投げ続けるため、b個のボールが必要)。この事実と定理4、6、9より、数列の平均$b$は必要なボールの数と一致することが分かる。

長い道のりでした。これで与えられた数列がJugglableであるか、実際にジャグリングをするには何個のボールが必要なのかを判別できます。ちなみに、補題8は定理3と共にJugglable性の判定によく用いられます。

Jugglableな数列46131が数列33333に変換できることを確かめてみましょう。
$46131 \overset{シフト}{\longrightarrow} 61314 \overset{swap}{\longrightarrow} 25314 \overset{シフト}{\longrightarrow} 53142 \overset{swap}{\longrightarrow} 44142 \overset{シフト}{\longrightarrow} 41424$
$\overset{swap}{\longrightarrow} 23424 \overset{シフト}{\longrightarrow} 42423 \overset{swap}{\longrightarrow} 33423 \overset{シフト}{\longrightarrow} 42333 \overset{swap}{\longrightarrow} 33333$
$(4+6+1+3+1) \div 5 = 3$ですから、定理9の主張を再現できていることが分かります。

数列97531はJugglableな数列であり、$(9+7+5+3+1)\div 5 =5$個のボールが必要です。

数列97135は$(9+7+1+3+5)\div 5 = 5$ですが、Jugglableではありません。

終わりに

ジャグリングと数学って意外と関わりがあるもので、まだまだ深い繋がりがあります。今回の記事では2つの条件のもと考えましたが、複数のボールを同時に投げる場合や、両手から同時にボールを投げる場合にサイトスワップを拡張することもできます。気になった方はぜひ調べてみてください。

明日はさんよう君がレポートの書き方を見直すようです。 物工/計数 Advent Calendar 2022 はまだまだ続きます。よろしくお願いします。

参考文献

投稿日:20221213
OptHub AI Competition

この記事を高評価した人

高評価したユーザはいません

この記事に送られたバッジ

バッジはありません。

投稿者

じん
じん
4
618

コメント

他の人のコメント

コメントはありません。
読み込み中...
読み込み中