前項「アルゴリズの取り出し」では「じゃんけん判定」の問題を扱いました。そこでは、まず、Aさん、Bさんの手(0、1、2のいずれか1つ)を、それぞれ変数XA、XBが保有するとしたとき、次が成り立つことを述べました。
(Aさんの結果)
(ⅰ)XA=XB ⇒ 相子
(ⅱ)(XA+1)mod(3)=XB ⇒ 勝ち
(ⅲ)(XA+2)mod(3)=XB ⇒ 負け
これに対して、つぎのような一般に知られた判定法も紹介しました。
(Aさんの結果)
(Ⅰ)(XA-XB+3)mod(3)=0 ⇒ 相子
(Ⅱ)(XA-XB+3)mod(3)=1 ⇒ 負け
(Ⅲ)(XA-XB+3)mod(3)=2 ⇒ 勝ち
そして、これら2つの方法は同等であり、それはmodの加減乗算の定理を用いて証明できますと述べました。
直前の投稿「modについて」で、modの加算、減算、乗算について紹介しましたので、これらを用いて上のことを証明しましょう。
(ⅰ)は(Ⅰ)と同等
XA=XB
∴XA mod(3)=XB mod(3)
∴XA mod(3)+3mod(3)=XB mod(3) ←3mod(3)は0だから
∴(XA+3)mod(3)=XB mod(3) ←modの加算を使用
∴(XA+3)mod(3)-XB mod(3)=0
∴(XA-XB+3)mod(3)=0 ←modの加減算を使用
(ⅰ)の式から(Ⅰ)の式を導くことができました。
(ⅱ)は(Ⅲ)と同等
(XA+1)mod(3)=XB
∴XA mod(3)+1mod(3)=XB ←modの加算を使用
∴XA mod(3)=XB-1mod(3)
∴XA mod(3)-XB=-1mod(3)
∴XA mod(3)-XB mod(3)=-1mod(3) ←XB=XB mod(3)
∴(XA-XB)mod(3)=-1mod(3) ←modの減算を使用
∴(XA-XB)mod(3)+3mod(3)=3mod(3)-1mod(3) ←3mod(3)=0
∴(XA-XB+3)mod(3)=(3-1)mod(3) ← modの加算、減算を使用
∴(XA-XB+3)mod(3)=2
(ⅱ)の式から(Ⅲ)の式を導くことができました。
(ⅲ)は(Ⅱ)と同等
(XA+2)mod(3)=XB
∴(XA+2)mod(3)+1mod(3)=XB+1 ←左辺には1mod(3)を右辺には1を加算
(ここに1mod(3) =1)
∴(XA+2)mod(3)+1mod(3)-XB=1
∴(XA+2)mod(3)+1mod(3)-XB mod(3)=1 ←XB=XB mod(3)だから
∴(XA+2+1-XB)mod(3)=1 ←modの加算、減算を使用
∴(XA-XB+3)mod(3)=1
(ⅲ)の式から(Ⅱ)の式を導くことができました。
こうして、2つの判定法は同等であることが証明されました。