八元数の乗算ツールを作ってみた
はじめに
前回、「四次元回転イメージと多元数の乗積表」という記事を書いてみたのですが、閲覧数がいつもより多めでしたので多元数ネタ第二弾をやってみることにしました。
実はちょうど多元数の乗算をラクしようと Excel で計算マクロを組んでたのですが、webツール化した方がみなさんのお役に立つかも?と考えて移植してみたんですよ。というわけで、早速紹介させてくださいませ☆彡
八元数乗算機
多元数の積って計算がものすご~くメンドーな上、間違いやすいんですよね(;´Д`) そこで作ったのがこのツール!今のとこ八元数までに対応してまして、各元の係数を最左列と最上段の入力欄に入れると [最左列の八元数の和] [最上段の八元数の和] を瞬時に計算してくれます。導出過程も視覚的に分かるよう工夫してみました(*´艸`*)
アルファベット(大・小文字)とギリシャ文字(小文字のみ)を変数として使え、「1」「-3bc」などの整数との積でも認識してくれます。但し、i とか j は虚数単位とみなさず変数として扱いますのでご注意下さい。入力欄からフォーカスが外れるか、入力欄の中で ENTERキー を押したタイミングで自動的に計算結果を更新します。
i i |
j j |
ij ij |
l l |
il il |
jl jl |
ijl ijl |
||
i | j | ij | l | il | jl | ijl | ||
---|---|---|---|---|---|---|---|---|
i | ||||||||
j | ||||||||
ij | ||||||||
l | ||||||||
il | ||||||||
jl | ||||||||
ijl |
「T」ボタンは最左列の八元数(被乗数)と最上段の八元数(乗数)を交換します。掛ける順番によって計算結果が変わるのが多元数の面白いトコロですね。
表の下にならぶ「+」や「-」のボタンは被乗数や乗数に対する計算で、左(left)や右(right)から各元を事前に乗除しておくことができます。適当に触っているだけでパズルとしても楽しめるかも? ゲーム化も考えましたが誰得でした(^_^;)
…と今回の記事はこれだけなのですが、なんか物足りない感があるのでここから先は私の考察メモを書いて埋めときますね。 一応、ところどころこのツールを使いながら計算したのですが、手前味噌ながら便利さを実感した次第です。
二次元
実- 面 を 回転させた時の座標
\begin{align}&(\cos\alpha+i\sin\alpha)(w+xi)\end{align}
と の乗積
\begin{align}&|\vec{a}|\Bigl(i\cos\alpha+j\sin\alpha\Bigr)|\vec{b}|\Bigl(i\cos\beta+j\sin\beta\Bigr)\\=&\Bigl(i|\vec{a}|\cos\alpha+j|\vec{a}|\sin\alpha\Bigr)\Bigl(i|\vec{b}|\cos\beta+j|\vec{b}|\sin\beta\Bigr)\\=&-\underbrace{\Bigl( (|\vec{a}|\cos\alpha)(|\vec{b}|\cos\beta)+(|\vec{a}|\sin\alpha)(|\vec{b}|\sin\beta)\Bigr)}_{内 積}\\&+\underbrace{ij\Bigl( (|\vec{a}|\cos\alpha)(|\vec{b}|\sin\beta)-(|\vec{a}|\sin\alpha)(|\vec{b}|\cos\beta)\Bigr)}_{外 積}\\=&-\underbrace{|\vec{a}||\vec{b}|\cos(\beta-\alpha)}_{内 積}+\underbrace{ij|\vec{a}||\vec{b}|\sin(\beta-\alpha)}_{外 積}\\=&|\vec{a}||\vec{b}|\Bigl(-\cos(\beta-\alpha)+ij\sin(\beta-\alpha)\Bigr)\end{align}
三次元
原点と を通る直線を軸として 回転させた時の座標
\begin{align}&\left(\cos\frac{\beta}2+\frac{ai+bj+cij}{\sqrt{a^2+b^2+c^2}}\sin\frac{\beta}2\right)(xi+yj+zij)\left(\cos\frac{-\beta}2+\frac{ai+bj+cij}{\sqrt{a^2+b^2+c^2}}\sin\frac{-\beta}2\right)\\=&\left(\cos\frac{\beta}2+\frac{ai+bj+cij}{\sqrt{a^2+b^2+c^2}}\sin\frac{\beta}2\right)(xi+yj+zij)\left(\cos\frac{\beta}2+\frac{-ai-bj-cij}{\sqrt{a^2+b^2+c^2}}\sin\frac{\beta}2\right)\\=&+\left(i\cos^2\frac{\beta}2+\frac{2cj-2bij}{\sqrt{a^2+b^2+c^2}}\cos\frac{\beta}2\sin\frac{\beta}2+\frac{(a^2-b^2-c^2)i+2abj+2acij}{a^2+b^2+c^2}\sin^2\frac{\beta}2\right)x\\&+\left(j\cos^2\frac{\beta}2+\frac{2aij-2ci}{\sqrt{a^2+b^2+c^2}}\cos\frac{\beta}2\sin\frac{\beta}2+\frac{(b^2-a^2-c^2)j+2abi+2bcij}{a^2+b^2+c^2}\sin^2\frac{\beta}2\right)y\\&+\left(ij\cos^2\frac{\beta}2+\frac{2bi-2aj}{\sqrt{a^2+b^2+c^2}}\cos\frac{\beta}2\sin\frac{\beta}2+\frac{(c^2-a^2-b^2)ij+2aci+2bcj}{a^2+b^2+c^2}\sin^2\frac{\beta}2\right)z\\=&+\left(i\cos\beta+\frac{cj-bij}{\sqrt{a^2+b^2+c^2}}\sin\beta+\frac{2a^2i+2abj+2acij}{a^2+b^2+c^2}\sin^2\frac{\beta}2\right)x\\&+\left(j\cos\beta+\frac{aij-ci}{\sqrt{a^2+b^2+c^2}}\sin\beta+\frac{2b^2j+2abi+2bcij}{a^2+b^2+c^2}\sin^2\frac{\beta}2\right)y\\&+\left(ij\cos\beta+\frac{bi-aj}{\sqrt{a^2+b^2+c^2}}\sin\beta+\frac{2c^2ij+2aci+2bcj}{a^2+b^2+c^2}\sin^2\frac{\beta}2\right)z\\=&+\left(i\cos\beta+\frac{cj-bij}{\sqrt{a^2+b^2+c^2}}\sin\beta+\frac{a^2i+ab j+ac ij}{a^2+b^2+c^2}(1-\cos\beta)\right)x\\&+\left(j\cos\beta+\frac{aij-ci}{\sqrt{a^2+b^2+c^2}}\sin\beta+\frac{b^2j+ab i+bc ij}{a^2+b^2+c^2}(1-\cos\beta)\right)y\\&+\left(ij\cos\beta+\frac{bi-aj}{\sqrt{a^2+b^2+c^2}}\sin\beta+\frac{c^2ij+ac i+bc j}{a^2+b^2+c^2}(1-\cos\beta)\right)z\\=&+\left(\frac{a^2i+ab j+ac ij}{a^2+b^2+c^2}+\frac{(b^2+c^2)i-ab j-ac ij}{a^2+b^2+c^2}\cos\beta+\frac{cj-bij}{\sqrt{a^2+b^2+c^2}}\sin\beta\right)x\\&+\left(\frac{b^2j+ab i+bc ij}{a^2+b^2+c^2}+\frac{(a^2+c^2)j-ab i-bc ij}{a^2+b^2+c^2}\cos\beta+\frac{aij-ci}{\sqrt{a^2+b^2+c^2}}\sin\beta\right)y\\&+\left(\frac{c^2ij+ac i+bc j}{a^2+b^2+c^2}+\frac{(a^2+b^2)ij-ac i-bc j}{a^2+b^2+c^2}\cos\beta+\frac{bi-aj}{\sqrt{a^2+b^2+c^2}}\sin\beta\right)z\\=&+\left(\frac{a(ax+by+cz)+( (b^2+c^2)x-a(by+cz))\cos\beta+(bz-cy)\sqrt{a^2+b^2+c^2}\sin\beta}{a^2+b^2+c^2}\right)i\\&+\left(\frac{b(ax+by+cz)+( (a^2+c^2)y-b(ax+cz))\cos\beta+(cx-az)\sqrt{a^2+b^2+c^2}\sin\beta}{a^2+b^2+c^2}\right)j\\&+\left(\frac{c(ax+by+cz)+( (a^2+b^2)z-c(by+cz))\cos\beta+(ay-bx)\sqrt{a^2+b^2+c^2}\sin\beta}{a^2+b^2+c^2}\right)ij\end{align}
球座標 を直交座標で表現
\begin{align}&\scriptsize\left(\cos\frac{\frac{\pi}2-\theta}2+(i\sin\phi-j\cos\phi)\sin\frac{\frac{\pi}2-\theta}2\right)(r(i\cos\phi+j\sin\phi))\left(\cos\frac{\frac{\pi}2-\theta}2-(i\sin\phi-j\cos\phi)\sin\frac{\frac{\pi}2-\theta}2\right)\\=&r\left(i\cos\phi\cos\left(\frac{\pi}2-\theta\right)+j\sin\phi\cos\left(\frac{\pi}2-\theta\right)+ij\sin\left(\frac{\pi}2-\theta\right)\right)\\=&r(i\cos\phi\sin\theta+j\sin\phi\sin\theta+ij\cos\theta)\\=&r(\cos\theta+(j\cos\phi-i\sin\phi)\sin\theta)ij\end{align}
四次元
実- 面を 、- 面を 回転させた時の座標
\begin{align}&\left(\cos\frac{\alpha+\beta}2+i\sin\frac{\alpha+\beta}2\right)( (w+xi)+(y+zi)j)\left(\cos\frac{\alpha-\beta}2+i\sin\frac{\alpha-\beta}2\right)\\=&+\left(\cos\frac{\alpha+\beta}2\cos\frac{\alpha-\beta}2-\sin\frac{\alpha+\beta}2\sin\frac{\alpha-\beta}2\right)(w+xi)\\&+\left(\cos\frac{\alpha+\beta}2\sin\frac{\alpha-\beta}2+\cos\frac{\alpha-\beta}2\sin\frac{\alpha+\beta}2\right)i(w+xi)\\&+\left(\cos\frac{\alpha+\beta}2\cos\frac{\alpha-\beta}2+\sin\frac{\alpha+\beta}2\sin\frac{\alpha-\beta}2\right)(y+zi)j\\&+\left(\sin\frac{\alpha+\beta}2\cos\frac{\alpha-\beta}2-\cos\frac{\alpha+\beta}2\sin\frac{\alpha-\beta}2\right)i(y+zi)j\\=&(\cos\alpha+i\sin\alpha)(w+xi)+(\cos\beta+i\sin\beta)(y+zi)j\end{align}
四次元回転イメージと多元数の乗積表
はじめに
今回は、四次元とかそれ以上の次元に関するお話です。といってもスピリチュアルな方向ではなく「多元数(超複素数)に関する個人的考察」を書き連ねた記事となります。興味のある方だけお付き合いくださいませm(_ _)m
「複素数の二次元回転なら分かる」、「仕組みは謎だけど四元数同士の積で三次元の回転を表現できることは知ってる」程度の知識がある方を対象として
にお答えするような内容で書いてみるつもりです。出来るだけ抽象度を下げた説明を心がけたいと思っておりますが、そもそも想像することが難しい世界のお話ですのでもしうまく伝わらない文章になってしまっていたらゴメンナサイ!!
四元数と四次元回転の関係イメージ
四元数の積として表される回転は、isoclinic rotation と呼ばれる四次元回転の一種に該当します。この isoclinic rotation というのは日本語に訳すなら「等角回転」となるでしょうか。四次元空間内の1点で垂直に交わる2平面が互いの面を回転の中心軸面として同じ角度で回転するもので、全ての点がこれら2平面の回転を合成した動きをすることになり、絶対値が1の回転なら四次元超球面上の大円に沿って回転します。四次元回転では回転軸が直線ではなく面なのです。
三次元空間では垂直に交わる2平面の交差部が直線となりますので、1点で交わるといわれても想像が難しいでしょう。しかし、一方の平面上の直線(交差部の直線とは平行ではない)を軸にしてその平面を四次元目の方向へと回転させると、その平面は回転軸の直線を残してその三次元空間から姿を消しますので、この時残された直線ともう一方の平面とは1点で交わることになる、といった感じでイメージをしてみるとおぼろげながら掴めてくるかもしれません(;´∀`)
話を戻しまして、等角回転の様子は式の形から伺うことができます。
と のそれぞれが回転する面上を同じ角度 で回転する式となっていますね。私の便宜上の造語ですが、これら2面のうち実軸とi軸を含むように分けた側の軸面(実-i平面)を「実面」と呼び、含まない側の軸面(j-k平面)を「虚面」と呼ぶことにします。
さて、先程の式では を右側から掛けていますが、もしこれを左から掛けていたらどうなっていたでしょうか。
計算順序が変わったことで、実面と虚面で次のように回転方向の違いが生じます。
右から掛けた場合
左から掛けた場合
このように実面の回転方向に対する虚面の回転方向は正逆2通りあり、掛ける方向によって振り分け可能です。そこでこれらの回転を掛ける方向にちなみ left と right で区別することにしましょう。先程の式では上の段がright、下の段がleft ということになりますね。left回転とright回転では虚面の回転方向が逆になるのがポイントです。
ところで、今は等角回転を前提としたお話をしていましたが、四次元空間上の実面と虚面は、回転の中心点こそ共有しているものの互いに完全に独立しておりますので、それぞれが異なる角度で回転することもできるはずです。実は先程の left と right をパズルのように組み合わせれば、そのような回転を作り出すことができちゃいます。
例えば実面上の回転角を 、虚面上の回転角を として回転させたいとしましょう。この場合、left回転を、right回転を するとよいです。
これらの結果として回転する角度の合計は、left回転right回転で
実面:
虚面:
となるので目的の回転を得られるってわけですね。
この時、もし が だったら実面は回転せずに虚面のみが回転し、 が なら虚面は回転せずに実面のみが回転することになります。実面と虚面は互いを軸面としあって回転しているため、一方が回転してない状態であるならばそれはもはや三次元回転といってよいでしょう。
ここで、とある座標 と原点を結ぶ直線を考えたとき、もしこの直線が実軸に対して直交しているのであればその直線は実軸方向には傾いていませんので と表現できますね。また、この座標の原点からの距離を としてこの直線と実軸のなす平面を実面とみなすならば、実面の回転における に相当するのは点 でその座標が です。とすると、この実面を回転させないように虚面相当の平面(この直線に直交し原点を通る平面)のみを 回転させる場合、任意座標 の回転は
という形に書けるはずです。この式どこかで見たことないでしょうか。共役四元数を左右から掛ける三次元回転の公式は、このような仕組みで成り立っていたのです。
乗積表の構造
さて、お次は四元数の乗積表を見てみましょう。
1 | +i | +j | +k | |
---|---|---|---|---|
1 | +1 | +i | +j | +k |
+i | +i | -1 | +k | -j |
+j | +j | -k | -1 | +i |
+k | +k | +j | -i | -1 |
符号を無視して考えるならば、単位元を とする元の集合で閉じており、自分自身を逆元とする結合的かつ可換なアーベル群だと分かります。 というループを持つのが大きな特徴で、実はこれは二進数を各桁ごとに排他的論理和を取る演算と代数的性質が全く同じなのです。
00 | 01 | 10 | 11 | |
---|---|---|---|---|
00 | 00 | 01 | 10 | 11 |
01 | 01 | 00 | 11 | 10 |
10 | 10 | 11 | 00 | 01 |
11 | 11 | 10 | 01 | 00 |
のように捉えますと、このループ構造は順列と逆順列のペアがあり、一方が赤字で書かれた乗積のうち3つに該当していますね。このように符号を割り当てることで四元数の乗積表を作れることが分かりました。
では、もう少し踏み込んで考察してみます。
積の構造
「ケーリー=ディクソンの構成法」をイメージすると分かりやすいかと思いますが、多元数の各元(各次元軸)は、積に関して二進数「的」な構造を持っています。
例えば八元数で
のように定義されている場合、
というイメージでしょうか。
八元数の基本的な元は8種類ですが、このように考えれば実質的な構成要素は添字にある 成分,成分,成分 の3種類に集約させられます。実は多元数の積はこうした分解によって得られる構成要素のみで表現可能なのです。
例えば八元数の積ならば
と表現できます。( は何らかの処理によって適切に値を返す関数とお考え下さい)
この は、符号を無視すれば二進数を各桁ごとに排他的論理和をとる演算を用いて と表現できますよね。
ということは、適切に符号を割り振る方法さえ分かれば排他的論理和を用いる手法でもっと大きな乗積表も作れそうです。八元数以上では結合則が成り立たないとされていますが、その理由を探るためにも符号の付け方ルールを見直してみましょう。
十六元数の乗積表を作ってみた
十六元数ということで、4桁の二進数の排他的論理和表に符号をつけてみました。
黒字は正符号、赤字は負符号です。以下、符号の決め方の根拠を書いていきます。
背景が白
基本ルールに従います。
背景が灰色
基本ルールに従えば、 の積のループ順は次のように定まります。
このようなループ順の関係を、以降 のように表記します。この場合は
です。
背景が薄緑
基本ルールに従えば、 の積のループ順は次のように定まります。
背景がオレンジ
に対する と 、 に対する と 、 に対する と はそれぞれ同列関係にあるべきですが、ループ順を考えると からは が導かれるのに対し からは が導かれて矛盾してしまいます。これは、
を見れば一目瞭然、結合則によって反交換2回分が1回分に短縮されてしまい符号の辻褄が合わなくなったことが原因です。そこで、「 や に対して結合の付け外しをする際には符号を反転させる」ことで矛盾を解消しましょう。
また、結合則を崩したことに伴う
や
という矛盾を防ぐため、「二乗となる元は他の元と結合しない」ようにします。
のように算出すれば問題ないようです。
背景が肌色
に対する と は同列関係にあるべきですね。
のように算出すれば問題ないようです。
背景が緑色
に対する は同列関係にあるべきですね。
のように算出すれば問題ないようです。
背景が薄水色
に対する は同列関係にあるべきですね。
のように算出すれば問題ないようです。
背景が薄黄色
に対する 、 に対する 、 に対する は同列関係にあるべきですね。
のように算出すれば問題ないようです。
背景が濃い水色
これらは全て を構成要素に持つ元が積のループ内に現れる乗積です。
という矛盾を避けるため、 と の結合を優先させるようにします。
のように算出すれば問題ないようです。
このようにして全ての乗積に符号をつけてみたのですが、十六元数としての正当性は大丈夫なのでしょうか。検証する手段がちょっと思いつかないのですが、少なくとも Wikipedia 先生の「十六元数」のページと比較してみた限りは一致してるようなのでとりあえずは良しとしましょう(*>_<*)ノ
万年カレンダーに”なる”方法
はじめに
アニメ映画「サマーウォーズ」で、先輩の誕生日を聞いた主人公が「モジュロ演算」という計算を使って何曜日なのか即答していました。モジュロ演算とは聞き慣れない言葉ですが、一体どんな計算なのでしょうか?
というわけで、今回は「道具に頼らない」という条件で日付から曜日が分かる方法についてアレコレ考えてみました(*´ω`*)
モジュロ演算って?
調べてみたところ、「モジュロ(演算)」というのは小学校で習う「割り算で余りを出す計算」のことのようです。別の呼び方で「剰余演算」ともいいますね。
(例えば を で割った余り「」を「」と書きます)
この「モジュロ」そのものは曜日を計算する専用のものではないのですが、曜日には7日で1周するという性質がありますので「ある数を7で割った余り」を曜日に対応させるという使い方で応用することができるのです。
例えばある日曜日を0日目とした場合、その日からの日数が分かれば「日数を7で割った余り」を求めることで曜日も分かります。どういうことなのか、日数を7で割った余りと曜日の対応を表にしてみました。
日 | 月 | 火 | 水 | 木 | 金 | 土 |
---|---|---|---|---|---|---|
0 | 1 | 2 | 3 | 4 | 5 | 6 |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 | 31 | 32 | 33 | 34 |
35 | 36 | 37 | 38 | 39 | 40 | 41 |
42 | 43 | 44 | 45 | 46 | 47 | 48 |
49 | 50 | 51 | 52 | 53 | 54 | 55 |
では、年月日から曜日を知りたい場合は一体いくつを7で割ればよいのでしょうか。有名な方法としては「ツェラーの公式」を利用するのが一般的のようです。
実は私もこのツェラーの公式とほぼ同じものを車輪の再発明していたのですが、「もっと暗算にやさしく」と考えてボツ案にしたという経緯がございます。そんな私の試行錯誤っぷりを、まずは御覧くださいませ(;´∀`)
ボツにしたアイデア集(読み飛ばしてOK)
西暦 年 月 日の曜日。 は小数点以下切り捨ての記号です。
出てきた数を7で割った余り ~ が 日曜~土曜 に対応しています。
ボツ案1:2ヶ月で-2日分&補正 作戦
月, 月 は前年の 月, 月 として計算
(奇数月補正:3,5,7月はさらに -4、9,11月は +4 する)
月単位でみた時、連続する2ヶ月が61日となるケースが1年の内に7回あることに着目した案です。暗算に適した式である反面、謎の奇数月補正で混乱しやすいのが難点。
ボツ案2:5ヶ月で+13日分 作戦
月, 月 は前年の 月, 月 または 前年の 月, 月 として計算
月単位でみた時、連続する5ヶ月が153日となるケースが1年の内に7回あることに着目した案です。ツェラーの公式とほとんど同形で、二桁の掛け算がネック。
ボツ案3:1ヶ月で+3日分&補正 作戦
月, 月 は前年の 月, 月 または 前年の 月, 月 として計算
(エイプリル補正:4月はさらに +1 する)
月単位でみた時、1ヶ月が31日であるケースが1年の内に7回あることに着目した案です。良案でしたが、後述する方法のが高速だったためお蔵入り。
補正処理をなくそうとすると計算が大変になってしまい、バランスが難しいですね。まあ、ボツ案とはいえこれでも十分実用の範囲とは思いますので念の為(;・∀・)
20xx年12月31日
それでは、いよいよ私のアイデア最新版を紹介しましょう。
まずは、20xx年(2000年~2099年)の大晦日の曜日から(*´ω`*)
西暦の下二桁 xx 年を「4で割った商と余り」に分割し、次のように計算します。
(余り+[7の整数倍])-(4で割った商×2)
[7の整数倍] は(4で割った商×2)を引いて正の数になるなら何倍でもよいです。もちろん0でも!
【2018年12月31日】
18 →「4と2」
(2+[7])-(4×2) 1
この数がその年の12月31日の曜日を表しています。7で割って余りを求めてみると 0~6 が 日~土 に対応しており、この場合は 1 ですから月曜日です。
20xx年m月d日
m月d日って、m月1日の前日(前月最終日)からd日後ですよね。つまり「m月1日の前日の曜日+d」が「m月d日の曜日」を表します。というわけで、次の表を御覧ください。
3月 | 4月 | 5月 | 6月 |
---|---|---|---|
2 | 5 | 0 | 3 |
7月 | 8月 | 9月 | 10月 |
5 | 1 | 4 | -1 |
11月 | 12月 | 翌1月 | 翌2月 |
2 | 4 | 0 | 3 |
これは、各月1日の前日の曜日が大晦日の曜日と比べて何日分後ろにズレているかをまとめたものです。つまりm月d日の曜日は大晦日の曜日+ズレ日数+d日と言えますね。
(余り+[7の整数倍])-(4で割った商×2)+ズレ日数+d
【2019年2月11日】←「2018年の翌2月」であることに注意
18 →「4と2」
(2+[7])-(4×2)+3+11 15
→ 7 で割った余りは 1(月曜日)
でも、このズレ日数を知るためには表を見なければなりません。「道具に頼らない」のが目的ですが、これを暗記するのはチョット面倒そう。計算で求める方法もあるにはありますが、「パターン記憶」を利用する方法がカンタンかもしれません。
上の「パターンを見る」ボタンを押してみてください。10月の「-1」から始まってチェック柄状に 1 ずつ増えながら「0」「1」「2」…と並んでることがお分かりいただけるかと思います。最後の「4」「5」だけやや変則的ですが、これならギリ自力で表を思い出せるのではないでしょうか。
ところで、どうして3月~「翌2月」なのでしょう。1月と2月だけは前の年からみた翌年という扱いになってますよね。その理由は、平年とうるう年で2月の日数が違うためです。1月1日や2月1日から見ると、その直後の3月1日以降では曜日のズレ方に1日分の誤差が生じてしまうのでそれを回避しているってわけなんです。
(翌1,翌2月 は 13, 14月 または 5, 6月 として計算してね)
・
または
・
ただし4月はさらに+1します
20xx年以外の12月31日
西暦の上2桁を4で割った余りによって、最後に[追加] を足してあげるだけ。それ以外は 20xx年 の時とやり方は変わりません。
余り | 1 | 2 | 3 | 0 |
---|---|---|---|---|
[追加] | 5 | 3 | 1 | 0 |
(余り+[7の整数倍])-4で割った商×2 +[追加]
【1957年12月31日】
19 → 余り3 → [1]
57 →「14と1」
(1+[28])-(14×2) +[1] 2
→ 2(火曜日)
実用的には1900年代と2000年代が分かれば十分と思いますので、わざわざこの表を覚える必要もなく、「1900年代のときだけ+1する」と覚えておけば問題ないでしょう。
ちなみに紀元前 年は、 の倍数から を引いたものを年とすればOKです。とはいえ、こちらも実用面であまり意味はないかも。。(;・∀・)
最後に
多少の練習は必要ですが、この方法に慣れれば超速で目的の曜日が分かるようになると思います。もっとお手軽な方法がありましたら是非教えてくださいませ!
もっとも、これだけスマホやタブレットなどが普及している現在、それが出来たからといって宴会芸くらいしか使い道ないのですが、頭の体操や知的好奇心を満たすにはちょうどよいネタかなということで。(*´ω`*)
毒ワインとソムリエのジレンマ
はじめに
ライアーゲームを見ながら、私もゲーム(論理パズル)を創作してみました。
とはいっても、マネーの奪い合いでもなければ、問題文にない条件や設定を持ち込むような意地悪クイズでもありません。論理的にお考えいただければ幸いです。
宜しければ挑戦してみて下さいね(*´ω`*)
問題
ある国の王様が、処刑予定となっている4人の囚人を集めてこう言いました。
「お前達の中に1人ソムリエがいるそうだな。そこで、こんなゲームを思いついた。見事勝ち残ることができた者は処刑を免除し、負けた者はそれをもって処刑とする。では、ルールを説明しよう。これより1人ずつ順番に処刑場へ連行する。その途中、ワイン蔵に立ち寄らせるので、自分以外の3人に飲ませたいワインを3つのグラスに注いで処刑場まで運んでもらう。そこには4種類のワインとそれぞれのワイン専用のグラスが用意されている。 全てのワインとグラスに1番から4番のいずれかの刻印があり、同じ番号同士なら専用ということだ。言うまでもないが専用ではないグラスにワインを注ぐことを禁止する。どの番号も必ず1種類のワインと4個以上のグラスに刻印されており、4種類中1種類に致死性の高い毒を入れさせてもらった。ちなみに蔵を1人出るたび、ワインやグラスの配置を整え並び替える。割ったり傷つけたりは即刻処刑だ。そして処刑場に全員揃ったら3人から1杯ずつ受け取り、3杯全て飲み干さない者も処刑する。それでは準備が整うまで、連行する順番を相談する時間を与えてやろう。」
さて、ソムリエには飲まなくても毒ワインを見抜く能力があり、それ以外の3人にはワインの知識すらありません。囚人達は「自分が助かる確率が少しでも上がることを最優先し、そのときに限り協力しあう」ものとして最善策をお考え下さい。
最善策への道
最善策を問われていますので、100%全員が助かる方法から考えてみます。
もしそのような方法があるなら、反対する囚人はいませんよね。
まずは各ワインの量について。「種類」という表現しかされていませんので「量」が分かりません。とは言え、さすがに問題文にない条件や設定を後付するような出題は論理パズルとして反則ですね。意識する必要がない=十分な量があるとみましょう。
(突然の災害で処刑どころではなくなることまで意識しなくてよいのと同じです。)
ワインの専用グラスの数はどうでしょうか。
4種類×4個以上=16個以上
うち、安全なワインの分については
3種類×4個以上=12個以上
4人×3杯=12杯 をカバーできる個数であることが確認できます。
最初に連行されるのがソムリエ以外だった場合は、毒を見抜くことができません。
誰かが毒を飲む可能性が出てしまうため、これはNGです。
しかし、ソムリエだった場合は毒を見抜くことができますので、安全なワイン3杯を注ぐことができます。但し後に続く3人が毒を注いでしまっては自分が危ないので、なんとかして毒入りワインを次の人に伝えなければなりません。
自分の意志でコントロールできるのは3杯分のワインの選択のみ。つまり各グラスの残数です。それを4種類のうちの1種類に対応させる方法を考えてみましょう。
最善策への道 ~準最善策編~
見ずに考えたい方は見ないほうがよいかも?
すぐに思いつくのは全てのグラスの総数を数えて4で割った余りをそれぞれ4種類に対応させる方法。但し、単純に数えて割るだけではうまくいきません。なぜならば、3杯注いでグラスを減らしたときの余りは3個ズレるだけなので、自由に操ることができないからです。
自由に操るためには、注ぐワインの番号によって余りを変化させる必要があります。つまり、番号ごとのグラスの数え方に差をつけることで「4で割った余り」に影響を与えるのです。
では、1番のグラスなら1個ずつ、2番なら1個で2個分、3番なら1個で3個分、4番は数えない(4個分数えても4で割った余りに影響しないため)というルールで3杯注ぐと「4で割った余り」はどう変化するのか見てみましょう。
3 | 0 | 0 | 0 | → | 2 | 3 | 0 | 1 |
0 | 2 | 1 | 0 | |||||
1 | 0 | 2 | 0 | |||||
0 | 0 | 1 | 2 | |||||
1 | 1 | 0 | 1 | |||||
0 | 3 | 0 | 0 | → | 3 | 0 | 1 | 2 |
2 | 0 | 0 | 1 | |||||
0 | 0 | 2 | 1 | |||||
0 | 1 | 0 | 2 | |||||
1 | 1 | 1 | 0 | |||||
0 | 0 | 3 | 0 | → | 0 | 1 | 2 | 3 |
2 | 0 | 1 | 0 | |||||
1 | 2 | 0 | 0 | |||||
1 | 0 | 0 | 2 | |||||
0 | 1 | 1 | 1 | |||||
0 | 0 | 0 | 3 | → | 1 | 2 | 3 | 0 |
2 | 1 | 0 | 0 | |||||
0 | 2 | 0 | 1 | |||||
0 | 1 | 2 | 0 | |||||
1 | 0 | 1 | 1 | |||||
注ぎ方 | 余りの変化 | |||||||
---|---|---|---|---|---|---|---|---|
1番 | 2番 | 3番 | 4番 | 1 ↓ |
2 ↓ |
3 ↓ |
0 ↓ |
ここで一つ、気をつけておきたい点があります。それは、いずれかのグラスの個数が最低数の4個だった場合です。4人とも毒以外のワイン3種類からそれぞれ1杯ずつしか注がないのであれば足りなくなることはありません。しかし、実際には上の表のようにほとんどのケースで2杯以上注ぐグラスが出てくるため、減らすべきグラスが足りなくなることも想定しておく必要があります。
シンプルな解決策としては、毒ワイン以外の3種類のうち「2杯以上注いでもOKなワインを1種類に限定」することです。他のワインは多くても1杯ずつしか注がないためそちらのグラスはなくなりません。すなわちなくなる可能性があるワインはその限定したワインのみですので、毒ワインの番号との対応関係を作っておきましょう。むしろ該当する番号のグラスが3個以下になっていたら積極的に使い切ってOK。
グラスのなくなったワインがあるということは毒ワインを特定できますので、もう「4で割った余り」は気にしなくてよいです。安全なワインのグラスは確実に全員分ありますから、最後の1人以外は残る2種類のワインのグラスがなくならない範囲で自由に注ぐことができます。
そこまで加味すると次のような注ぎ方がベターでしょう。
1番が毒のとき(4で割った余りを1にしたい)
- 現在 4で割った余りが1 なら2番を2杯と4番を1杯
- 現在 4で割った余りが2 なら2番と3番と4番を1杯ずつ
- 現在 4で割った余りが3 なら2番を3杯
- 現在 4で割った余りが0 なら2番を2杯と3番を1杯
2番が毒のとき(4で割った余りを2にしたい)
- 現在 4で割った余りが1 なら1番を3杯
- 現在 4で割った余りが2 なら1番と3番と4番を1杯ずつ
- 現在 4で割った余りが3 なら1番を2杯と3番を1杯
- 現在 4で割った余りが0 なら1番を2杯と4番を1杯
3番が毒のとき(4で割った余りを3にしたい)
- 現在 4で割った余りが1 なら4番を2杯と2番を1杯
- 現在 4で割った余りが2 なら4番と1番と2番を1杯ずつ
- 現在 4で割った余りが3 なら4番を3杯
- 現在 4で割った余りが0 なら4番を2杯と1番を1杯
4番が毒のとき(4で割った余りを0にしたい)
- 現在 4で割った余りが1 なら3番を3杯
- 現在 4で割った余りが2 なら3番と2番と1番を1杯ずつ
- 現在 4で割った余りが3 なら3番を2杯と1番を1杯
- 現在 4で割った余りが0 なら3番を2杯と2番を1杯
いずれかのグラスがなくなっているとき
- 1番がなくなっていたら毒は2番
- 2番がなくなっていたら毒は1番
- 3番がなくなっていたら毒は4番
- 4番がなくなっていたら毒は3番
毒以外の2種類のグラスがなくならないよう自由に注ぎます。
「なくなっていたら毒を示すグラス」が3個以下のとき
- そのグラスを使い切っても3杯に満たない場合には毒以外の2種類のグラスがなくならないよう自由に注ぎます。
ややこしながらも、100%全員が助かる必勝法が完成しましたヽ(=´▽`=)ノ
余談ではありますが「割ったり傷つけたりは即刻処刑だ」とあるので4で「割った」時点で処刑されちゃうかもしれませんね。。。 いや、冗談ですケド(笑)
ところで、この問題で問われているのは「最善策」でした。何か改良できそうな点はないでしょうか。例えば、グラスごとに数え方を変える手間や4で割った余りを出す手間は簡略化したいところ。実は「4で割った余り」の代わりに「2で割った余り」すなわち「奇数か偶数か」の対を組み合わせて4通りに集約させることで、それらの煩わしさを解消することができるのです。
最善策
答え合わせ、または、ギブアップする方はどうぞ。
1番から4番の中から3種類選びます。選び方は自由ですが今回は2番、3番、4番を選ぶことにして、以降それに合わせた説明をしていきますね。
2番、3番、4番の各グラスの個数が奇数か偶数かを調べて仲間ハズレになる番号を探すと4パターンに分類できるので、以下のように毒の番号と結びつけましょう。
- 1番が毒:仲間ハズレがない
- 2番が毒:2番だけ仲間外れ
- 3番が毒:3番だけ仲間外れ
- 4番が毒:4番だけ仲間外れ
この関係を保つように3杯注ぐことは非常にシンプルかつ直感的に行えます。文章で表現するならば、次のような感じになるでしょうか。
- 毒以外の3種類の中に、「1杯注ぐだけで目的の仲間ハズレ状態にすることができるグラス」が存在するならその1杯を注ぎ、残り2杯はグラスの残り数になるべく余裕のある1種類(毒以外ならどれでも)を選んで注ぐ。存在しないなら毒以外の3種類を1杯ずつ注ぐ。
4人目については次に毒を伝える必要がないため毒以外を自由に3杯注げばよく、従ってこのルールは3人目までが遵守すれば問題ありません。
以上の情報を4人で共有して実行することが(少なくとも現在私の考えうる範囲で)最善策です。さらなる改良・最善策があれば是非教えて下さいませ(*´ω`*)
ちなみに分かる方限定のネタで恐縮なのですが、「2番から4番の中から仲間ハズレを探す」という単純な作業は、実は「全てのグラスから排他的論理和を取る」ことと本質的に同じなんです。この最善策においては、1番グラスを00、2番グラスを01、3番グラスを10、4番グラスを11として全てのグラスから1つずつ排他的論理和を取ってみていただければ「全く同じ」であることがお分かりいただけると思います。 から (、整数)の全ての二進整数の排他的論理和を取ると になるため、1つだけ「仲間ハズレ」があればそのまんま透けて見えるってワケですね。
もちろんこれらは仕組みを悪用すると「毒ワインを注ぎつつ毒の位置を正しく示す」という裏切り行為が可能です。また最後に入る囚人は次に伝える必要がないため毒を注ぎ放題。もし私がライアーゲームの脚本家ならこれを利用して話を盛り上げるか、マネーで契約させるなどの要素で封じていたかも知れませんね。
ここでは問題文に「自分が助かる確率が少しでも上がることを最優先し、そのときに限り協力しあう」という前提があるので、協力しあってもらいましょう。
エイプリルフールの由来のウソ?
今年のウソは?
4月1日といえば、エイプリルフールですね。近年では大手企業が会社をあげてこのイベントに乗っかり、世界中を楽しませてくれます。
私が密かに楽しみにしているのは、google日本語入力チームのウソ発表。
さて、この4月1日にウソをつくという習慣は一体いつから始まったのでしょうか。検索してみると様々な説が出てきたので、「もしかしたらこれもウソかも?」とつい懐疑的になってしまいました(>_<)。一つずつ見ていきましょう。
インド説
インドの僧侶が厳しい悟りの修行を終えて4月1日に普通の生活に戻った途端、再び迷いが生じてしまうことを揶揄したのが始まりという説。 そのため4月1日のことを「揶揄節」と呼ぶようになったそうなのですが、この話だけではウソをついてよいという話でもなさそうで関連性が見えてきませんね。強引に解釈するなら、それまでの修行がまるでウソだったようなところから来てるのかし(´・_・`)
聖書説
ノアの方舟の話で、水が引いたことを確認するためにハトを飛ばしたものの無収穫で戻ってきた日が4月1日だったことから「無駄足を踏まされる日」という説。確かに聖書の創世記8章8~9節にそういうシーンはありますが、日付の記述はありませんので4月1日とされた由来も気になります。それより、もしもこれを起源とした場合「ノアがハトにウソをついて無駄足させた」と相当歪んだ解釈になってしまいそう。キリスト教的に大丈夫なんでしょうか。そうそう、直前の創世記8章7節でハトより前に飛ばされてウロウロしたカラスのことも忘れないであげてください(。>﹏<。)
イギリス説
これはエイプリルフールの起源ではなく、エイプリルフールの有効期間は午前中だけ(午後にはネタバラシする)というイギリスの習慣の元ネタ(の一説)のようです。イギリスには、チャールズ2世によって1660年に王政復古されたことを祝う記念祭「Oak Apple Day」というのがあるそうで、もちろんエイプリルフールとは関係ない5月29日なのですが、その日は午前中だけオークアップルを身につけ王への忠誠を示すのだとか。
古代ローマ説
古代ローマで行われていた身分階級を逆にする「さかさま祭り」から「ウソと本当も逆転」させるようになったとする説。もう少し調べてみたところ古代ローマ帝国では貴族や商人達が毎晩のように「ケーナ」と呼ばれる祝宴を開催していて、その余興でドンチャン騒ぎをする習慣があったそうです。祝祭の季節に行われる余興がさかさま祭りで、無礼講と称して身分階級を反対にする遊びで盛り上がったのだとか。恐らく古代ローマの祝祭は当時の新年つまり春分と思われますから、時期的にも説としての合理性はあるように思います。
フランス説その1
フランスの人々はこの日、魚を形どった紙や絵などを人の背中にこっそり貼り付けるドッキリを仕掛けるそうです。まんまと魚を貼られてしまった人のことを「Poisson d'avril(四月の魚)」と呼ぶというちょっとよくわからない風習なのですが、4月になるとサバがよく釣れるらしく、なんなら餌をつけてなくても釣れてしまうことから引っかかった人のことをそう呼ぶのだとか。うーん、たまたま日付が同じってだけで、エイプリルフールとは別のイベントのような気がしなくもないですね。
フランス説その2
これについては wikipedia 先生が詳しかったので引用してみます。
その昔、ヨーロッパでは3月25日を新年とし、4月1日まで春の祭りを開催していたが1564年にフランスのシャルル9世が1月1日を新年とする暦を採用した。これに反発した人々が、4月1日を「嘘の新年」とし、馬鹿騒ぎをはじめた(これ以降は嘘の起源と思われる)。しかし、シャルル9世はこの事態に対して非常に憤慨し、町で「嘘の新年」を祝っていた人々を逮捕し、片っ端から処刑してしまう。処刑された人々の中には、まだ13歳だった少女までもが含まれていた。フランスの人々は、この事件に非常にショックを受け、フランス王への抗議と、この事件を忘れないために、その後も毎年4月1日になると盛大に「嘘の新年」を祝うようになっていった。これがエイプリルフールの始まりである。
そして13歳という若さで処刑された少女への哀悼の意を表して、1564年から13年ごとに「嘘の嘘の新年」を祝い、その日を一日中全く嘘をついてはいけない日とするという風習も生まれた。その後、エイプリルフールは世界中に広まり、ポピュラーとなったが、「嘘の嘘の新年」は次第に人々の記憶から消えていった。
1月1日を新年とする暦ってなんだろうと思って調べてみたのですが、フランスでは
と暦が変遷していることがわかりました。少し脱線しますが紐解くには非常に重要なポイントですので、これらの経緯について見ていきましょう。
このユリウス暦というのは、かのユリウス・カエサル(ジュリアス・シーザー)皇帝が実施したといわれる暦です。紀元前に作られたとは思えないほど非常に正確な暦で、ヨーロッパでは千年以上の長きに渡って使われてきました。上の変遷リストをみての通り、1582年の時点でも誤差は10日というオドロキの正確さ(@_@。
ただ、春分・秋分・夏至・冬至といった太陽の運行に関する日がそれほどまでズレてしまうとさすがに宗教行事にも影響が出てしまいます。そろそろなんとかしようってことから1579年、時のローマ教皇グレゴリウス13世が学者などを集めて新しい暦の研究委員会を発足させました。これが現在世界中で使われているグレゴリオ暦です。
フランス革命暦というのは、市民の力によって王政を廃止(フランス革命)した際に作った革命政府が、カトリック色の強いグレゴリオ暦に反発して制定したものです。ところがたった十数年で「やっぱ王様欲しい!」ってことで国民投票でナポレオンが皇帝になり、カトリックとの和解の意味も込めて暦も元のグレゴリオ暦に戻すという冗談みたいな話がホントにありました。
さて、そろそろ話を戻します。フランスのシャルル9世が1564年に採用した暦とは、一体何だったのでしょうか。一説によればそれがグレゴリオ暦だという話ですが、シャルル9世はグレゴリオ暦が研究される以前の1574年にこの世を去っています。
しかも、いかにも横暴残虐な暴君かのような印象を受けますが、1564年の4月時点でシャルル9世は13歳、処刑されたという少女と同じです。幼少の頃に結核にかかり、10歳で王に即位したものの実権は母に握られ、その母が黒幕と噂されるカトリックの大虐殺によって父以上に慕っていた提督を殺され、24歳を目前にしてこの世を去った悲劇の王だったことも分かりました(;´Д`)
諸々考察してみると、この説は何らかの事実に基づいているのかもしれないけれど、エイプリルフールの由来としてはちょっと盛りすぎかな?という印象です。そもそも春分の日と1月1日のどちらをもって新年とするかも、暦を変える話ではなく日付を変えるって話ですしね。
まとめ
エイプリルフールの「フール」とは直訳するなら「バカな人」。ウソに騙された人を揶揄する言葉なのだそうです。ネガティブな印象を受けたのは私だけでしょうか。
むしろ最初に紹介させていただいた動画のように、あからさまなウソに対して全力になれる「いい意味でのバカ」という賛辞の意味でポジティブ解釈をしたいな、と私は思いました。(*´ω`*)
abcjs でサイト上に楽譜を♪
Webで簡易作曲
Webサイト上に楽譜を書いたりそれを演奏できたりする abcjs というのを試してみたところ、なかなかよくできていたので紹介したいと思います。
abcjs は、米国バージニア州の Paul Rosen さんという方が GitHub で公開されている javascript のライブラリ。楽曲の譜面情報を文字列で書き表すための「ABC記譜法」というのがありまして、そのルールで書かれた内容を元に楽譜を自動生成してくれるスグレモノです。
MathJax を使ったことのある方なら、あれの楽譜版みたいなもの、といえばスゴさがお分かりいただけるかも? なにはともあれ、使ってみましょう。
abcjs はこんな感じ
はじめの一歩
まずは コチラ からダウンロード。「abcjs-midi.css」と「bin/abcjs_midi_5.x.x-min.js」があればとりま十分ですので、それを Web サーバ上に配置したら
<link rel="stylesheet" type="text/css" href="//cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<link rel="stylesheet" href="(配置先)/abcjs-midi.css" media="all" type="text/css" />
<script type="text/javascript" src="(配置先)/abcjs_midi_5.x.x-min.js"></script>
こんな感じのを HTML 内に書けば準備完了です。色んな使い方があるみたいなので、詳しいことは ドキュメント や abcjs configulator 等を参照していただくとしまして、単純に先程御覧頂いたようなことがやりたいだけなら
new ABCJS.Editor(
'editor', { // テキストエリアの DOM の ID
'paper_id': 'paper', // 楽譜を書かせたい DOM の ID
'generate_midi': true,
'midi_id': 'midi', // 演奏UIを置く DOM の ID
'generate_warnings': true,
'warnings_id': 'warnings' // エラー情報を表示したい DOM の ID
}
);
こんな javascript を書くだけでできちゃいます。
ABC記譜法については「The abc music standard 2.1」や、まりんきょ さんの翻訳による「abc 記譜法」に詳しく書かれていますので参考にどうぞ!
9×9=?
九九をド忘れ
小学生の頃、掛け算の九九を覚えさせられましたよね。でも、もし催眠術かなにかで九九をド忘れしてしまった時に はいくつ?って聞かれたらどうしましょう。
掛け算ですから、地道に を 回足し合わせればよさそうです。
\begin{align}9+9+9+9+9+9+9+9+9=81\end{align}
ただ何度も足すのはちょっと手間ですし、計算の回数が多くなると途中でミスをする可能性も高くなります。もっと神ワザ的な方法はないものでしょうか。
そこで紹介したいのが、私流の暗算法「イメージ算」です。
を暗算してみた
某パズルゲームを連想するかもしれませんが、青色のマスの変遷に注目。
このような流れをイメージすることにより、 は に置き換えられることが分かります。さすがにこの形になれば って一目瞭然(*´ω`*)
…とはいっても、「九九だけを都合よくド忘れする」なんてことがありえませんし、わざわざこのようにイメージする必要性を感じませんよね。
ところが、実はこれを応用すると次のような計算で威力を発揮するんです。
を暗算してみた
では先ほどの と同じ要領で を計算してみましょう。もう催眠術は解けましたので、九九を使ってよいですよ(*´ω`*)
まずは右端の溝の幅が であることに注目します。
先程同様、この溝にピッタリはまる大きさに上部を削り取り、
\begin{align}991\times994=&(985+6)\times994\\=&(985\times994)+(6\times994)\end{align}
削り取った の部分を持ち上げて回転させ、溝に落とすと…
\begin{align}991\times994=&985\times1000+(994-985)\times6\\=&985000+54\\=&985054\end{align}
このようにラクラク計算できてしまいます。計算式だけ見るとなんのこっちゃかもですが、イメージの流れを頭に描くといつの間にかこの式が出てきて答えがわかってしまう、そんな所に「イメージ算」のスゴさを感じていただけたら幸いです。
結論
式で書くとかえって分かりにくいかもですが、イメージ算の内容を分析してみると
\begin{align}A\times B=(N-((N-A)+(N-B)))\times N~+~(N-A)\times(N-B)\end{align}
という計算を視覚的に行っていたことが分かります。
この は や などの掛け算しやすい数がよく、もちろん や 、 や などでもよいでしょう。但し、 が簡単なほど計算の手間が省けますので、その条件に合わせられるときこそオススメの計算法と言えそうです。
少し工夫してあげれば、 進数の計算や異なる基数への変換にも応用できますので、興味のある方は試行錯誤してみてくださいね。
というわけで、計算式とにらめっこだけではなく、視覚的なイメージを描いてみるとその本質や意外な近道を発見できるかも知れませんよ、というお話でした!
三次方程式の解の公式
※この記事は表示に時間がかかる場合があります。
結論
わたしのかんがえたさいきょうの
唐突な書き出しでゴメンナサイ。「自己流で解の公式を求めてみた」というお題にて書いていたところ、ひたすら数式がならぶだけの超ツマンナイ記事になってしまったため、論文アレルギーの方への配慮で結論から先に書かせて頂きました。
とゆーわけで、ここから先は「数式ウェルカム♡」という物好きさんだけどうぞ!
解の公式の一般形予想
元次方程式の 番目の解を表す解の公式の一般形を、 個の解の対称性により\begin{align}x=\sum_{m=-\infty}^{\infty}s'_m\left(e^{2i\pi\cdot\frac{N}{n}}\right)^m\end{align}と予想しました。これは原始乗根の無限級数和をイメージしたもので、\begin{align}\tag{S}\label{S}x=\sum_{m=0}^{n-1}s_m\cdot e^{2i\pi\cdot\frac{mN}{n}}\end{align}へと集約することが可能です。ここで、元次方程式の一般形\begin{align}\sum_{p=0}^na_px^{n-p}=0 (a_0\neq0)\end{align}の両辺をで割った\begin{align}\sum_{p=0}^n\frac{a_p}{a_0}x^{n-p}=0\end{align}を で置換すると()\begin{align}\tag{1}\label{1}\sum_{p=0}^nA_px^{n-p}=0\end{align}になるため、を解に持つ\begin{align}\tag{2}\label{2}\prod_{N=0}^{n-1}\left(x-\sum_{m=0}^{n-1}s_m\cdot e^{2i\pi\cdot\frac{mN}{n}}\right)=0\end{align}を展開し、 と の係数比較で各 を で表すことにします。
※ちなみにこの予想を立てた当初はまだ の原始乗根と指数関数の等式を見出しておらず、
※ ではなく独自に創作した を用いていました。
の場合( 次方程式)
、より
、より
の解の公式は
の場合( 次方程式)
、より
、、より
の解の公式は
の場合( 次方程式)
便宜上、 の原始乗根を と表記します。
、より
ここで、 と を解に持つ二次方程式を考えます。
より
、を代入
と は と をそれぞれ三乗して得たものですので、 の三乗根の主値より
とすることができます。(冪根の対称性により、 と は逆でも構いません。)
、、、より任意の整数 を用いて
の解の公式は
、 として書き改めて
の場合( 次方程式)
、より
,, とおき、
を の 次方程式とみなして を求め、
[ だったら]
と を解とする 次方程式から と を導出します。
[ だったら]
ですので、 と を解に持つ 次方程式から と を導出します。
あとは当て嵌めるだけで完成なのですが…
(この余白はそれを書くには狭すぎる)
抜けてるようで抜けてない話
こんな計算をご存知でしょうか?
この式に初めて出会った時、私は から の数字と が並んでいることに数の神秘を感じました。でも、よーくみるとなんだか違和感。そう、 が抜けてるんです。
うわー、惜しい! かといって試しに を入れて を計算してみると で、今度は がジャマ。。゚(゚´Д`゚)゚。
でも待って。ここで私は「抜けてるようで実は抜けてない説」に気付きました!
どゆことかと言いますと、「」を桁ごとに間をあけて書くとホントは「」なんじゃないかなって思ったんです。
筆算を思い出していただき、一番下の桁から繰り上がりをしていくと
「」からの~
「」からの~
「」
ホラ、同じじゃないですか(`ー´) ドヤッ!
とはいえ、これだけではまだ意味がよく分からないので別アプローチで補強しましょう。
数字が順番に並ぶ計算は他にも「」というのがあります。小数点以下に から までの二桁の数が並び、以降は再び へ戻ってループ…なのですが、なんとこちらも が抜けてるという共通点。
「」もやっぱり同様で、 から までの三桁の数が並ぶものの が抜けています。
実はこれらも「抜けてるようで抜けてない説」なんです。
例として、一番シンプルな で検証してみますね。
\begin{align*} \left(1\div9\right)\div9&=\left(0.111\dots\right)\div9\\&=\left(0.1+0.01+0.001+\dots\right)\div9\\&=0.0111\dots+0.00111\dots+0.000111+\dots\\(&=0.0~1~2~3~4~5~6~7~8~9~10~11~12~\dots)\\&=0.0123456790123\dots \end{align*}
下から二段目のカッコ内は、繰り上げ前の筆算のように桁ごとの の合計をならべて書いたものです。「抜けてるようで実は抜けてない」というのは「桁の繰り上がりによってあたかも抜けたように見える」というミラクル現象だったんですね!