おもしろいかな算数(16) 「孫子算経」(セミナー通信 2021年11月号)
律令時代からの算術の教科書「孫子算経」から2題
「?」
今有孕婦行年二十九。難九月、未知所生。
答曰、生男。
術曰、置四十九、加難月、減行年。所餘、以天除一、地除二、人除三、四時除四、
五行除五、六律除六、七星除七、八風除八、九州除九。其不盡者、竒則爲男、耦則爲女。
今29歳の妊婦がいて、妊娠して苦しむこと9か月になる。まだ生まれる子の性別は分からない。
答 男が生まれる。
解法
49を置き、苦しむ月9を加え、行年の29を引く。
その余り29から、天の1を引き、地の2を引き、人の3を引き、四時の4を引き、五行の5を引き、六律の6を引き、七星の7を引き、八風の8を引き、九州(中国全域の古称)の9を引く。
その余りが奇数ならば(生まれる子は)男とし、偶数ならば女とする。
中国の数には男と女の区別がありました。奇数は男、偶数は女でした。
(49+9-29)-1-2-3-4-5-6-7=1 ここまでしか引けません。余りが1になったので男ということのようです。
男が生まれるか女が生まれるかを算術で占っています。
古代、「数が使える者」=「呪術・占星を行うもの」だったということでしょうか。
次は高校数学の「剰余定理」です。
今有物、不知其数。三・三数之、剰二。五・五数之、剰三。七・七数之、剰二。
問、物幾何
答曰、二十三。
術曰、『三・三数之、剰二』、置一百四十。『五・五数之、剰三』、置六十三。『七・七数之、剰二』、置三十。并之、得二百三十三。以二百一十減之、即得。凡、三・三数之、剰一、則置七十。五・五数之、剰一、則置二十一。七・七数之、剰一、則置十五。一百六以上、以一百五減之、即得。
今物が有るが、その数はわからない。3つずつにして物を数えると、2余る。5で割ると、3余る。7で割ると、2余る。物はいくつあるか?
答 二十三。
解法
3で割ると、2余る数として、140と置く。
5で割ると、3余る数として、63と置く。7で割ると、2余る数として、30と置く。
これらを足し合わせて、233を得る。これから210を引いて、答えを得る。
一般に、3つずつにして物を数え、1余ると、その度に70と置く。
5で割った余りに21をかける。
7で割った余りに15をかける。
106以上ならば、105を引くことで、答えを得る。
*210を引くというのは 3×5×7=105 233からこの105を1回引いて128、また105を引いて23が最小の答えということでです。
aは5でも 7でも割り切れるが、3で割ると2余る数、
bは3でも7でも割り切れるが、5で割ると3余る数、
cは3でも5でも割り切れるが、7で割ると2余る数とします。
上の解法の140がaに当たり、63がbに当たり、30がcに当たります。
aの場合、140を素因数分解すると5×7×22です。5×7が入っているので、5でも7でも割り切れます。
ここでM=a+b+c という数字を作ってみますと、Mを3で割ると2余り、5で割ると3余り、7で割ると2余ります。従って140+63+30=233 は確かに条件を満たす数ですが、そのような数は105おきに無限に存在するということを述べているのが、中国式剰余定理です。
ガウスが考案した合同式を使うと次のようになります。
合同式とは137≡5≡2(mod 3) 137と5と2は3で割ると余りが同じになる。というふうに使います。
x ≡ 2 (mod 3) ←xは3で割ると2余る
x ≡ 3 (mod 5) ←xは5で割ると3余る
x ≡ 2 (mod 7) ←xは7で割ると2余る
を同時に満たす整数 x を求める。まず、1番目の式より x = 3m1 + 2 (m1 ∈ Z) と表せる。(Zは整数全体の集合)これを2番目の式に代入し
3m1 +2 ≡ 3 (mod 5)
両辺から2 を引くと、
3m1 ≡ 1 (mod 5)
この式の両辺に 2 をかけると、(左辺)= 6m1 = 5m1 + m1 ≡ m1 (mod 5)
(右辺)= 2 (mod 5)なので
m1 ≡ 2 (mod 5) となる
したがって、m1 = 5m2 + 2 (m2 ∈ Z) と表せ、これにより x = 15m2 + 8 を得る。更にこれを連立合同式の3番目の式に代入すると、
15m2 + 8 ≡ 2 (mod 7)となる。
この式の両辺から 8 を引き、左辺=15m2 = 14m2 + m2 ≡ m2 (mod 7)
右辺=-6(mod 7)なので
m2 ≡ −6 (mod 7).
更にこれは、−6 ≡ 1 (mod 7) より
m2 ≡ 1 (mod 7)
と書き直せるので、m2 = 7m3 + 1 (m3 ∈ Z) と表せ、これにより x = 105m3 + 23 を得る。すなわち、
x ≡ 23 (mod 105)となり23が答えになります。
ユークリッドの互除法を使って解くこともできます。高校生はぜひ解いてみてください。