置き去りになったメモ

数値計算、代数、関数型プログラミングとか?

楽しいゲーム 「宝石環(Gem-Ring)」と(-1)×(-1)=1

こんにちは、やきつか(@sy_t_)です。

(-1)×(-1)=1を代数的構造を崩さずに(無価値なたとえ話にならないように)説明しようと考えてたところ、よくわからなくなったので、よくわからないまま記事にしました。暇な方はお付き合いください。

ゲームのルール

楽しいゲームを考えたので、一緒に遊んでみましょう!
ゲーム名は「宝石環(Gem-Ring)」というもので、不思議な宝石にまつわるゲームです。
このゲームには、特殊な性質を持つ3つのジェム(宝石)があって、次のようなものです。

  • ユニットジェム みんなが欲しがる、とても価値があるジェム、 Uで表す。
  • ゼロジェム だれにも見向きされない全く無価値なジェム,、 Oで表す。
  • インバースジェム 持っているだけで、ユニットジェムの価値を打ち消してしまう大変よろしくないジェム、 U^{-1}で表す。

ジェムの価値に関する表記

宝石袋(上の3種のジェムがはいった袋)から、適当に2つをだしてきて、それらの合計価値を表す表記があります。
具体的には次のように書きます。
表記 : 宝石A✦宝石B
意味 : 宝石Aと宝石Bの価値の合計

ジェムの価値に関するルール

宝石袋から適当にジェムを引っ張ってきて、それぞれ宝石A、宝石B、宝石Cとしておきます。
この時、どのような宝石についても次のルールがあります!

宝石Aと宝石Bの価値の合計と、宝石Cとの価値の合計は、宝石Aの価値と、宝石Bの価値と宝石Cの価値の合計との、価値の合計は同じ

つまり、価値を計算する時に、どっちから計算してもイイよ、ということです。

上の表記を使えば次のように書くことができます!
 (宝石A✦宝石B)✦宝石C = 宝石A✦(宝石B✦宝石C)

宝石Aと宝石Bの価値の合計は、宝石Bと宝石Aの価値の合計は同じ

当たり前すぎて、意味不明かもしれませんね。要するに、どっちに書いても一緒ってことです。

次のように書けます。
 宝石A✦宝石B=宝石B✦宝石A

ゼロジェムとの価値の合計は何も変化しない

ゼロジェムOは価値のない宝石でしたから、他の宝石との価値の合計を計算しても価値が増えないことはお分かりですね。
次のように書けます。(こっちの方がわかりやすいかも)
 O✦宝石A=宝石A✦O=宝石A

価値の合計をゼロジェムの価値に等しくするようなジェム

インバースジェムはユニットジェムの価値を打ち消してしまう恐ろしいジェムなので、価値の合計
を計算するとゼロジェムの価値になってしまいます。
 U^{-1}✦U=U✦U^{-1}=O
ユニットジェムとインバースジェムに限らず、価値を打ち消すようなジェムが必ず存在します。
そのようなジェムを元のジェムのインバースといいます。
ひとつの例として U U^{-1}があるだけです。
一般に、次のように表記します。
 (宝石A)^{-1}✦宝石A=宝石A✦(宝石A)^{-1}=O

ジェムの錬金に関する表記

このゲームでは、ジェム同士を錬金することができます!
具体的には次のように書きます。
表記:  宝石A←宝石B
意味: 宝石Aをベースとして宝石Bを錬金したものの価値

重要なこと

宝石Aをベースとして宝石Bを錬金したものと、宝石Bをベースに宝石Aを錬金したものの価値は異なります!
 宝石A←宝石B ≠ 宝石B ←宝石A
現実の合金でも、割合が違ったら全く別の金属になりますからね!

ユニットジェムとの錬金は価値を変化させない

ユニットジェムは価値のある宝石ですが、錬金に関してはあまり良い性質を持ちません。
どんな宝石を、ユニットジェムとどのように錬金しても価値は変わりません!
つまり、 U←宝石A = 宝石A←U = 宝石Aというルールです!

価値の合計と錬金に関する決め事

最後のルール! これは価値の合計と錬金の記法の間の重要な決め事です。

次のように書いてあるものは、それぞれに錬金したものの価値の合計を意味する

 (宝石A✦宝石B)←宝石C=(宝石A←宝石C)✦(宝石B←宝石C)
 宝石A←(宝石B✦宝石C)=(宝石A←宝石B)✦(宝石A←宝石C)
これによって、いちいち錬金をとって価値を合計するという記法が短縮できますね!

ルールのまとめ

宝石の価値の合計のルール
  • (1)  (宝石A✦宝石B)✦宝石C = 宝石A✦(宝石B✦宝石C)
  • (2)  宝石A✦宝石B=宝石B✦宝石A
  • (3)  O✦宝石A=宝石A✦O=宝石A
  • (4)  (宝石A)^{-1}✦宝石A=宝石A✦(宝石A)^{-1}=O
宝石の錬金のルール
  • (5)  宝石A←宝石B ≠ 宝石B ←宝石A
  • (6)  (宝石A✦宝石B)←宝石C=(宝石A←宝石C)✦(宝石B←宝石C)
  • (7)  宝石A←(宝石B✦宝石C)=(宝石A←宝石B)✦(宝石A←宝石C)
  • (8)  U←宝石A = 宝石A←U = 宝石A

このゲームの目的

あなたは今、インバースジェム U^{-1}を2つ持っています。
インバースジェムは持っているだけで損なので、錬金して全く別の宝石に変えてしてしまおうとあなたは企みます。
しかし、インバースジェム同士の錬金に関するルールはないので結果がどうなるかわかりません。( U^{-1}←U^{-1}=?)
天才であるあなたは、上の錬金や価値に関するルールを知っています。
上のルールをうまく用いてインバースジェム同士の錬金の価値( U^{-1}←U^{-1})を見いだすというのが、このゲームの目的です。
ヒント:  A←O, O←Aはどうなるかな?









攻略(ネタバレ注意!!)

それでは、ゲームを攻略していきましょう!
 U^{-1}✦U^{-1}を求めたいわけですが、まだ情報が足りないのでいきなりは導けません。
そこで、次のような性質を導いておきたいと思います。

 O←A=A←O=O : ゼロジェムと錬金するとゼロジェムになってしまう

今、なんでもいい宝石をAとしておき、 O←Aの価値をみいだしてみようと思います。
(3)のルールを用いるとO=O✦Oなので
 O←A=(O✦O)←A
さらに、(6)のルールで
 (O✦O)←A=(O←A)✦(O←A)
つまり、
 O←A=(O←A)✦(O←A)
となり、両辺に (O←A)^{-1}を加えて価値を計算すると
 (O←A)✦(O←A)^{-1}=(O←A)✦(O←A)✦(O←A)^{-1}
(4)のルールで、
 O=O←A
導けました! 逆側 A←Oも同じ手順でできるので、暇な読者はやってみるといいと思いますよ!

この新しい性質を用いて攻略をさらに進めてみましょう。
先程の性質を用いると、 O=O←U^{-1}であることがわかると思います。
ところで、(4)のルールから O=U✦U^{-1}なので、
 O=(U✦U^{-1})←U^{-1}とできます。
ここで、(6)のルールを用いて
 O=(U←U^{-1})✦(U^{-1}←U^{-1})
(8)のルールから U←U^{-1}=U^{-1}なので、
 O=U^{-1}✦(U^{-1}←U^{-1})となります。
ここで、両辺にUを加えて価値を計算してみましょう。
 U✦O=U✦U^{-1}✦(U^{-1}←U^{-1})
(3)と(4)のルールから、
 U=U^{-1}←U^{-1}
が導けました。
これは、インバースジェムとインバースジェム同士を錬金するとユニットジェムの価値と等しくなるということを示しています。
おめでとうございます、あなたはこの計算結果に驚愕し、インバースジェムをユニットジェムに作り変え、豪遊して余生を過ごすのでした。おしまい。

まとめ

もともとあるルールをこねくり回して U^{-1}←U^{-1}を導出できたわけですが、これは(-1)×(-1)=1を証明するステップと同じになっています(大半の人は分かっていると思う)。実は上に書いてるルールは(Ring)という代数的構造が満たすもので、実数と実数の足し算・掛け算も同じルールを持っています。(-1)×(-1)=1のようなものは一例で、環のルールから他にも様々な"公式"を導出することができます。





正直、自分で見返してもよくわからないので、よくわからなかった方は他にもっとわかりやすい記事がたくさんあるので、そちらを参照してください。