百五減算
百五減算(ひゃくごげんざん)は、未知の数(厳密には 0 ~ 104 の整数)を 3, 5, 7 でそれぞれ割った余りから元の数を求める和算の一つ。 3 で割った余りには 70、5 で割った余りには 21、7 で割った余りには 15 をかけた合計から 105 未満になるまで繰り返し 105 を引く(つまり 105 で割った余りを求める)もの。
例
以下に百五減算を利用して相手の年齢を当てるゲームを示す。これは百五減算を利用した遊びとして典型的なものである。
「あなたの年齢を 3 で割った余りを教えて下さい」と聞いて、例えば「 1 です」という答えを得る。同様に 5 と 7 で割った余りも尋ねてそれぞれ 4 , 5 であると教えてもらったとする。
そこで素早く 1 × 70 + 4 × 21 + 5 × 15 = 229 を計算し、229から105を引けるだけ引いていくと 229 - 105 = 124 , 124 - 105 = 19 となり、余りを聞いただけで「あなたの年齢は 19 歳ですね」と言い当てられるというわけである。
もちろんこの計算だけでは124歳や229歳である可能性もあるのだが、19歳か124歳かは相手を見ればすぐにわかるので、人間の年齢を当てるには十分である。
背景
- [math]70 \equiv 0 \pmod{(5\times7)}, 70 \equiv 1 \pmod{3}[/math]
- [math]21 \equiv 0 \pmod{(3\times7)}, 21 \equiv 1 \pmod{5}[/math]
- [math]15 \equiv 0 \pmod{(3\times5)}, 15 \equiv 1 \pmod{7}[/math]より[1]。
一般解
3で割った余りをa、5で割った余りをb、7で割った余りをcとするとき、解xは、合同式を用いて
x ≡ 70a + 21b + 15c (mod 105)
と表される。 解から105を引いた数もまた解になるので、70から105を引いて 70 - 105 = -35 として、別解
x ≡ -35a + 21b + 15c (mod 105)
を得る。
なお、余りを知る数が3、5、7でなくても、どの2つをとっても互いに素となるような数の組み合わせであれば、中国剰余定理によりこのような合同式を導くことができる[1]。
原文
吉田 1977から問題と回答の原文を引用する。
問題
第十三 百五げんといふ事
▲
回答
惣数八十六あるといふなり。