算額(その1566)
八十六 岩手県室根村室根山 室根神社 明治32年(1899)
山村善夫:現存 岩手の算額,昭和52年1月30日,熊谷印刷,盛岡市.
http://www.wasan.jp/yamamura/yamamura.html
キーワード:整数方程式
#Julia, #SymPy, #算額, #和算
第 1 問
今如図三宝ニ大球ヲ載ルアリ各数ヲ不知只云大球(一十一段ト小球五段ト)和シテ一百八拾三個 又云大球ト小球数ヲ相併テ七除シ奇令ナシ大球数幾何但シ大球数小球数共ニ一位ニ止無奇令
注:「段」は段に積むという意味ではなく,「倍」ということ。
意訳:大球と小球がある。大球の個数の 11 倍と小球の個数の 5 倍を足すと 183,大球と小球をあわせた個数は 7 で割り切れる。それぞれ何個ずつか。
以下のブルートフォースで,大球 13 個,小球 8 個である。
検算:
13*11 + 8*5 = 183
(13 + 8)/7 = 3
for 大 = 1:16, 小 = 1:36
11大 + 5小 == 183 && rem(大 + 小, 7) == 0 && (println("大 = $大, 小 = $小"); break)
end
大 = 13, 小 = 8
第 3 問
今如図甲乙ノ数球ヲ高円台ニ重載スルアリ只云甲球一個量目五拾三匁又云乙球一個量目四拾八匁別云乙総球ノ目弱ナルコト一百九拾四匁甲乙球数幾何 但シ甲乙ノ球数壱位止無奇令
「乙総球ノ目弱ナルコト一百九拾四匁」を山村は「総量 - 乙量 = 194」と読んでいるが,答えからいうと「乙量 - 甲量 = 194」であろう。
意訳:甲球,乙球の 1 個あたりの重さは 53, 48 である。それぞれいくつあるかはわからないが,乙球の総重量から甲球の総重量を引くと 194 である。甲球,乙球はそれぞれいくつか。
ブルートフォースで以下のようにして,甲球数 = 38, 乙球数 = 46 である。
検算:
甲球の総重量 = 53*38 = 2014
乙球の総重量 = 48*46 = 2208
乙球の総重量 - 甲球の総重量 = 2208 - 2014 = 194
甲球重量 = 53
乙球重量 = 48
for 甲球数 = 1:100, 乙球数 = 1:100
(乙球数*乙球重量) - (甲球数*甲球重量) == 194 && (println("甲球数 = $甲球数, 乙球数 = $乙球数"); break)
end
甲球数 = 38, 乙球数 = 46
第 5 問
今如図円台ニ甲球若干数ト一大球ニ若干乙球ヲ容テ載ルアリ甲球ト乙球ハ等数ナリ只云甲球ノ総径ヲ乙球一ケ径ヲ以テ除之二拾四個ヲ得又云乙球ノ総径ヲ甲球一ケノ径ヲ以除之六ケヲ得等数幾何
意訳:甲球,乙球が同数個ある。甲球の直径の和を乙球の直径で割ると 24 になり,乙球の直径の和を甲球の直径で割ると 6 になる。何個ずつあるのか。
以下の方程式を解いて,甲球,乙球は 12 個ずつある。甲球の直径は乙球の直径の 2 倍である。
using SymPy
@syms 数::positive, 甲球径, 乙球径
eq1 = 甲球径*数//乙球径 - 24
eq2 = 乙球径*数//甲球径 - 6
solve([eq1, eq2], (数, 甲球径))[1]
(12, 2*乙球径)
ブルートフォースで解くと以下のような結果になる。
for 数 = 1:100, 甲球径 = 1:30, 乙球径 = 1:甲球径 - 1
甲球径*数//乙球径 == 24 && 乙球径*数//甲球径 == 6 && println("数 = $数, 甲球径 = $甲球径, 乙球径 = $乙球径")
end
数 = 12, 甲球径 = 2, 乙球径 = 1
数 = 12, 甲球径 = 4, 乙球径 = 2
数 = 12, 甲球径 = 6, 乙球径 = 3
数 = 12, 甲球径 = 8, 乙球径 = 4
数 = 12, 甲球径 = 10, 乙球径 = 5
数 = 12, 甲球径 = 12, 乙球径 = 6
数 = 12, 甲球径 = 14, 乙球径 = 7
数 = 12, 甲球径 = 16, 乙球径 = 8
数 = 12, 甲球径 = 18, 乙球径 = 9
数 = 12, 甲球径 = 20, 乙球径 = 10
数 = 12, 甲球径 = 22, 乙球径 = 11
数 = 12, 甲球径 = 24, 乙球径 = 12
数 = 12, 甲球径 = 26, 乙球径 = 13
数 = 12, 甲球径 = 28, 乙球径 = 14
数 = 12, 甲球径 = 30, 乙球径 = 15