算額(その235)
中村信弥「改訂増補 長野県の算額」
http://www.wasan.jp/zoho/zoho.html
県内の算額3(225-226)
長野県諏訪市下諏訪 諏訪大社下社 慶応4年(1868)
菱形の中に一辺約 8寸5分5厘2毛6糸あまりの正方形が入っている。菱形の対角線(長い方と短い方)の長さを求めよ。
対角線の長さを,x, y,正方形の一辺の長さを a とおく。
三角形の相似関係で,AD/DE = AB/BC これは (y - a)/a = y/x である。
a について解くと,a = x*y / (x + y) となる。
include("julia-source.txt")
using SymPy
@syms x::positive, y::positive, a::positive;
@syms x, y, a
eq = (y - a)/a - y/x
solve(eq, a)[1] |> println
x*y/(x + y)
x, y を整数として,x*y / (x + y) ≒ 8.5526寸になるものを探索する。なお,小数なので 1万倍して切り捨てたときに 85526 になるものを解とする。
1 < y < x < 10000000 までを探索してみる。この範囲内では条件を満たすのは,x = 25, y = 13 の場合のみであり,そのときの正方形の一辺の長さは 25*13/(25+13) = 8.552631578947368 であり,題意を満たしていることが確認できる。
正方形の一辺の長さが整数値になる x, y の組み合わせもあるが,解の一意性を保証するために「8.5526寸あまり」という半端な数を指定している。
a = 85526
limit = 10000000
for x in 1:limit
for y in 1:x
res = floor(x*y / (x + y) * 10000)
if res > a
break
elseif res == a
println("x = $x; y = $y")
end
end
end
x = 25; y = 13
function draw(more)
pyplot(size=(500, 500), grid=false, aspectratio=1, label="", fontfamily="IPAMincho")
(x, y) = [25, 13] / 2
a = 8.5526 / 2
plot([x, 0, -x, 0, x], [0, y, 0, -y, 0], color=:black, lw=0.5)
rect(-a, -a, a, a)
if more == true
point(0, y, " A", :black, :left, :bottom)
point(0, 0, " B", :black, :left, :bottom)
point(x, 0, " C", :black, :left, :bottom)
point(0, a, " D", :black, :left, :bottom)
point(a, a, " E", :black, :left, :bottom)
point(a, 0, " F", :black, :left, :bottom)
hline!([0], color=:black, lw=0.5)
vline!([0], color=:black, lw=0.5)
plot!(showaxis=false)
else
plot!(showaxis=false)
end
end;
※コメント投稿者のブログIDはブログ作成者のみに通知されます