算額(その190)
中村信弥「改訂増補 長野県の算額」
http://www.wasan.jp/zoho/zoho.html
県内の算額1(87)
長野県中野市田上 田上観音堂 文化6年(1809)
県内の算額1(64)
長野県下高井郡木島平村往郷 水穂神社 寛政12年(1800)
県内の算額1(46)
長野県長野市若穂 清水寺観音堂 寛政6年(1794)
第6問 鉤股の中に,全,甲,乙,丙,丁の正方形を入れる。丙,丁の一辺が 192 寸, 108 寸 のとき,全の一辺はいかほどか。
全,甲,乙,丙,丁 の正方形の一辺を a, b, c, d, e とする。c = 192, e = 108 で,構成される複数の直角三角形の鉤股の比を t = AC / AB = (a + d + e - c)/(a + b + c - e) として,連立方程式を解く。
using SymPy
@syms a::positive, b::positive, d::positive;
c = 192
e = 108
t = (a + d + e - c)/(a + b + c - e)
eq1 = t - (b - c)/c
eq2 = t - e/(d - e)
eq3 = t - (a - c)/(b + c)
res = solve([eq1, eq2, eq3], (a, b, d))
1-element Vector{Tuple{Sym, Sym, Sym}}:
(588, 336, 252)
全,甲,乙の一辺の長さはそれぞれ 588 寸,336 寸,252 寸である。
ちなみに,鉤股弦は 3:4:5, t = 3/4
using Plots
using Printf
function point(x, y, string="", color=:green, position=:left, vertical=:top; mark=true)
mark && scatter!([x], [y], color=color, markerstrokewidth=0)
annotate!(x, y, text(string, 10, position, color, vertical))
end;
function segment(x1, y1, x2, y2, color=:black; linestyle=:solid, linewidth=0.5)
plot!([x1, x2], [y1, y2], color=color, linestyle=linestyle, linewidth=linewidth)
end;
function rect(x1, y1, x2, y2, color=:pink)
plot!([x1, x2, x2, x1, x1], [y1, y1, y2, y2, y1], color=color, linewidth=0.5, seriestype=:shape, fillcolor=color)
end;
function draw(more)
pyplot(size=(500, 500), grid=false, aspectratio=1, label="", fontfamily="IPAMincho")
(a, b, d) = res[1]
(c, e) = (192, 108)
t = (a + d + e - c)/(a + b + c - e)
println("t = $t")
plot()
rect(0, 0, a, a)
rect(a, 0, a + b, b)
rect(a + b, 0, a + b + c, c)
rect(0, a, d, a + d)
rect(0, a + d, e, a + d + e)
plot!([0, a + b + c + c/t, 0, 0], [0, 0, a + d + e + e*t, 0], color=:black, lw=0.5)
if more == true
point(a, 0, " a", :black, :left, :top)
point(a + b, 0, " a+b", :black, :left, :top)
point(a + b + c, 0, " a+b+c", :black, :left, :top)
point(0, a, "a ", :black, :right, :bottom)
point(0, a + d, "a+d ", :black, :right, :bottom)
point(0, a + d + e, "a+d+e ", :black, :right, :bottom)
plot!([e, a + b + c, e, e], [c, c, a + d + e, c], color=:red, lw=1)
point(e, c, " A", :black, :left, :bottom)
point(a + b + c, c, " B", :black, :left, :bottom)
point(e, a + d + e, " C", :black, :left, :bottom)
hline!([0], color=:black, lw=0.5, xlims=(-175, 1400))
vline!([0], color=:black, lw=0.5, ylims=(-70, 1050))
else
plot!(showaxis=false)
end
end;
t = 3/4