4
エンタメ解説
文献あり

ジャグリングの数理

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

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

数学的な定義

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

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

全単射f:ZZが任意のtZに対しf(t)tかつ、高さ関数hf(t)=f(t)thf(t+kp)=hf(t)を満たすとき、fを周期pジャグリングパターンと呼ぶ。

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

3ボールカスケード

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

441

441では、
f(t)={4+t(t0,1(mod3))1+t(t2(mod3)),hf(t)={4(t0,1(mod3))1(t2(mod3))
となります。

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

サイトスワップ

有限非負整数列{ai}i=0p1に対し、任意のiZ/pZについてhf(i)=aiとなるようなジャグリングパターンf:ZZが存在する時、数列{ai}i=0p1サイトスワップと呼ぶ。また、数列がサイトスワップとなるとき、その数列はJugglableであると言う。

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

Jugglableな数列その1

531はJugglableな数列です。実際、 f(t)={5+t(t0(mod3))3+t(t1(mod3))1+t(t2(mod3)),hf(t)={5(t0(mod3))3(t1(mod3))1(t2(mod3))とすれば良いことが分かります。

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のジャグリングパターンf(t)+kp=f(t+kp)が任意のtZ/pZ,kZについて成り立つ。

hf(t+kp)=hf(t)より従う。

fを周期pのジャグリングパターンとする。このとき、
f:Z/pZZ/pZ;tf(t)(modp)
はwell-definedで全単射。すなわち,fZ/pZの置換である。

補題1より、ts(modp)ならばf(t)f(s)(modp)である。これはすなわちts(modp)ならばf(s)f(t)(modp)であることを示しているからfはwell-definedである。次に全単射性を示すが、全射性のみ示せば十分。tZ/pZとする。fは全単射であるから、f(s)=tを満たすsZがある。ここで補題1より、s=s(modp)とすれば、sZ/pZであってf(s)t(modp)である。よってfは全射であることが示せた。

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

Jugglable性の判定

有限非負整数列{ai}i=0p1がJugglableである。 写像 ϕ{ai}:Z/pZZ/pZ;iai+i(modp)
が全単射。

()数列{ai}i=0p1がJugglableであるとする。すなわち、あるジャグリングパターンfがあって、hf(i)=aiである。補題2より任意のiZ/pZに対しf(i)πf(i)(modp)となる置換πfが存在するが、
ai=hf(i)=f(i)iπ f(i)i(modp)
より、ai+iπf(i)(modp)が得られる。置換は全単射であるから、ϕ{ai}も全単射である。

()ϕ{ai}が置換であったとする。{ai}i=0p1がJugglableであることを示すには任意のiZ/pZに対しhf(i)=aiとなるようなジャグリングパターンfを見つければ良い。数列{ai}i=0p1を拡張し、jZに対しaj=ai(ji(modp))と定義する。ここで、f:ZZ;jaj+j
という関数を考え、これがジャグリングパターンとなっていることを示す。hf(j)=ajfの作り方から満たされていることがすぐ分かるから、任意のk,jZに対しhf(j+kp)=hj(j)、任意のiZ/pZ対しf(i)ifが全単射になっていることを確かめれば良い。hf(j+kp)=f(j+kp)(j+kp)=aj+kp=aj+jj=f(j)j=hf(j)
よりhf(j+kp)=hj(j)は成立。また、f(i)iaiが非負であることから明らか。
あとはfが全単射であることを示す。

(単射性)s,tZに対しf(s)=f(t)であったとする。このとき、fの定め方からϕ{ai}(s)=ϕ{ai}(t)である。ϕ{ai}は全単射であると仮定しているから、st(modp)が成り立つ。すなわち、as=atである。これとf(s)=f(t)よりs=tが言えるから、単射性は示された。

(全射性)ϕ{ai}は全単射であるから、あるsZ/pZに対し、ϕ{ai}(s)t(modp)となるtZがある。すなわち、as+st(modp)が成り立っている。ここで、as+s+kp=tとすると、as=as+kpであるから
f(s+kp)=as+kp+s+kp=as+s+kp=t
よって、s=s+kpとおけば、任意のsZに対してf(s)=tとなるtZがとれるため、fは全射である。

a86411がJugglableであることを定理1を用いて確かてみましょう。a0=a,a1=8,,a5=1とすると、
ϕ{ai}(0)=4,ϕ{ai}(1)=3,ϕ{ai}(2)=2ϕ{ai}(3)=1,ϕ{ai}(4)=5,ϕ{ai}(5)=0
であるから、ϕ{ai}は全単射です。よってa86411はJugglableです。

ボールの個数

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

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

siteswap

siteswap

s={ai}i=0p1を長さ2以上の有限非負整数列とする。0m<np1,nm<amを満たすn,mに対し、数列sm,n
sm,n= {ai}i=0p1={ai(im,n)an+(nm)(i=m)am(nm)(i=n)
と定義する。このように、数列ssm,nへ変換することをsiteswapと呼ぶ。

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

数列a0=4,a1=6,a2=1,a3=3,a4=1に対してs0,1a0=6+(10)=7,a1=4(10)=3,a2=1,a3=3,a4=1です。

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

s={ai}i=0p1を長さ2以上の有限非負整数列とする。sがJugglableである sにsiteswapを施したsm,n={ai}i=0p1がJugglableである。

sがJugglableであると仮定する。sm,nの定義より、
{an+n=am+mam+m=an+nai+i=ai+i(im,n)
が成り立つ。すなわち、写像
ϕ{ai}:Z/pZZ/pZ;iai+i(modp)
は、写像ϕ{ai}:Z/pZZ/pZ;iai+i(modp)と互換(m,n)の合成で書ける。ϕ{ai}と互換(m,n)は全単射であるから、ϕ{ai}も全単射。よってsm,nはJugglableである。逆に関しても同様の議論で示すことができる。

siteswapは数列の平均を保つ。すなわち、
1pi=op1ai=1pi=op1ai

am+an=an+(nm)+am(nm)=an+amより示せる。

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

サイクリックシフト

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

サイクリックシフト

数列s={ai}i=0p1に対し、数列s={a i1(modp) }i=0p1=ap1a0a1ap2のこと、ないしsへの変換をサイクリックシフトと呼ぶ。また、k-シフトk回サイクリックシフトを施した数列とし、skと書く。

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

s={ai}i=0p1を有限非負整数列とする。sがJugglableである sがJugglableである。

sがJugglableであると仮定する。sの定義より、
ϕ:Z/pZZ/pZ;iai+i+1(modp)
が全単射であることを示せば、sがJugglableであることが示せるが、sのJugglable性よりこれは明らかに全単射。

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

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

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

平均の定理

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

{ai}i=0p1をJugglableな数列とする。このとき、
b=1pi=0p1ai
は非負整数である。

{ai}i=0p1はJugglableであるから、
i=0p1(ai+i)i=0p1i(modp)
よって、
i=0p1(ai+i)0(modp)
{ai}i=0p1は非負数列であるから、1pi=0p1aiは非負整数である。

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

{ai}i=0p1をJugglableな数列とし、b=1pi=0p1aiとする。このとき、数列{ai}i=0p1にsiteswapとサイクリックシフトを作用させると数列bbbpに変換することができる。

siteswapとサイクリックシフトは逆元を持つ操作であるから、与えられたJugglableな数列s={ai}i=0p1にsiteswapとサイクリックシフトを施してbbbpへと変換できることを示せば良い。そこで、以下のアルゴリズムを考える。

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

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

平均の定理

{ai}i=0p1をJugglableな数列とする。このとき、
b=1pi=0p1ai
とすると、b{ai}i=0p1をジャグリングをするのに必要なボールの個数と一致する。

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

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

Jugglableな数列46131が数列33333に変換できることを確かめてみましょう。
4613161314swap2531453142swap4414241424
swap2342442423swap3342342333swap33333
(4+6+1+3+1)5=3ですから、定理9の主張を再現できていることが分かります。

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

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

終わりに

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

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

参考文献

投稿日:20221213
OptHub AI Competition

この記事を高評価した人

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

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

バッジはありません。
バッチを贈って投稿者を応援しよう

バッチを贈ると投稿者に現金やAmazonのギフトカードが還元されます。

投稿者

じん
じん
4
732

コメント

他の人のコメント

コメントはありません。
読み込み中...
読み込み中
  1. はじめに
  2. ジャグリングのモデル化
  3. ジャグリングダイヤグラム
  4. サイトスワップ
  5. 数学的な定義
  6. Jugglable性の判定
  7. ボールの個数
  8. siteswap
  9. サイクリックシフト
  10. 平均の定理
  11. 終わりに
  12. 参考文献