2020 年日本数学オリンピック予選 問題6
https://www.imojp.org/archive/mo2020/jmo2020/problems/jmo30yq.html
Q6. 平面上に 3 つの正方形があり,図のようにそれぞれ 4 つの頂点のうち 2 つの頂点を他の正方形と共有している。ここで,最も小さい正方形の対角線を延長した直線は最も大きい正方形の左下の頂点を通っている。最も小さい正方形と最も大きい正方形の一辺の長さがそれぞれ 1,3 であるとき,斜線部の面積を求めよ。
一辺の長さが 3 の正方形の頂点は以下の通り。
A = (0, 0)
B = (3, 0)
C = (3, 3)
D = (0, 3);
一辺が 1 の正方形 DEFG の頂点 E の座標を (x, y) とすると,F, G も決まる。
using SymPy
@syms x, y
E = (x, y)
G = (3 - y, 3 + x)
F = (x + (3 - y), y + x);
頂点 A, E, G が一直線ということから,線分 AE と AG の傾き(tangent)が等しとする方程式を解き,x, y を求める。
eq1 = Eq(G[2] / G[1], y / x)
eq2 = Eq(x^2 + (3 - y)^2, 1)
solve([eq1, eq2])
2-element Vector{Dict{Any, Any}}:
Dict(x => -1/6 + sqrt(17)/6, y => 17/6 - sqrt(17)/6)
Dict(x => -sqrt(17)/6 - 1/6, y => sqrt(17)/6 + 17/6)
図から,x, y は以下のようになる。 なお,後々の数式変形のために a = sqrt(17) としておく。そうしておかないと,単純に数値解を求めてくれるので,ある意味綺麗じゃない。
@syms a
x = (a - 1) / 6
y = (-a + 17) / 6;
E, G, F を再定義する。
E = (x, y)
G = (3 - y, 3 + x)
F = (x + (3 - y), y + x)
println("E:$E\nG:$G\nF:$F")
E:(a/6 - 1/6, 17/6 - a/6)
G:(a/6 + 1/6, a/6 + 17/6)
F:(a/3, 8/3)
二番目に大きい正方形の対角線の長さ FB は以下のようになる。
FB = sqrt((F[1] - 3)^2 + F[2]^2)
三角形 FHB は直角二等辺三角形なので,HB の長さは以下のようになる。
FB² = (F[1] - 3)^2 + F[2]^2
HB = sqrt(FB²/2)
頂点 H の座標を (u, v) とする。
@syms u, v
H = (u, v);
方程式を立てよう。
eq3 = Eq((H[1]- 3)^2 + H[2]^2, HB^2)
eq4 = Eq((F[1]-H[1])^2 + (F[2]-H[2])^2, HB^2)
solve([eq3, eq4], [u, v])
2-element Vector{Tuple{Sym, Sym}}:
(-(-a^2 - 8*a + 153)/(6*(a - 9)), 17/6 - a/6)
(-(-a^2 + 8*a + 9)/(6*(a - 9)), a/6 - 1/6)
上に示された解の2番目のものが題意を満たしている。u, v に代入すると,a を含む式になる。
u, v = (-(-a^2 + 8*a + 9)/(6*(a - 9)), a/6 - 1/6)
((a^2 - 8*a - 9)/(6*a - 54), a/6 - 0.166666666666667)
確認のため a = sqrt(17) を代入すると H の座標は (0.853850937602943, 0.520517604269610) である。
u(a=>sqrt(17)), v(a=>sqrt(17))
(0.853850937602943, 0.520517604269610)
H = (0.853850937602943, 0.520517604269610)
H = (u, v)
((a^2 - 8*a - 9)/(6*a - 54), a/6 - 0.166666666666667)
三点を辺上に持つ長方形の面積は以下の通り。
sq = expand((F[1]-E[1])*(F[2]-H[2]))
- a^2 / 36 + 0.444444444444444 a + 0.472222222222222
右上の三角形の面積は
tru = simplify((F[2]-E[2]) * (F[1]-E[1]) /2)
a^2/72 - 1/72
右下の三角形の面積は
trr = simplify((F[2]-H[2]) * (F[1]-H[1]) /2)
- 0.0138888888888889 a^2 + 0.25 a - 0.236111111111111
左下の三角形の面積は
trl = simplify((E[2]-H[2]) * (H[1]-E[1]) /2)
0.5 - 0.0555555555555556 a
求める三角形の面積は,長方形の面積から 3 つの三角形の面積を除いたものである。
S = expand(sq - tru - trr - trl)
- 0.0277777777777778 a^2 + 0.25 a + 0.222222222222222
a = sqrt(17) なので,もう少し簡約化すれば,
-0.0277777777777778*17+0.222222222222222 + 0.25a
0.25 a - 0.250000000000001
0.25 * sqrt(17) - 0.25 = (sqrt(17) - 1) / 4 である
S(a=>sqrt(17))
0.780776406404415
とどのつまりが,
(sqrt(17)-1)/4
0.7807764064044151
ということである。
以上
図を描いておこう。
E1 = E[1](a=>sqrt(17))
E2 = E[2](a=>sqrt(17))
F1 = F[1](a=>sqrt(17))
F2 = F[2](a=>sqrt(17))
G1 = G[1](a=>sqrt(17))
G2 = G[2](a=>sqrt(17))
println("E:($E1, $E2)\nF:($F1, $F2)\nG:($G1, $G2)")
E:(0.520517604269610, 2.14614906239706)
F:(1.37436854187255, 8/3)
G:(0.853850937602943, 3.52051760426961)
using Plots
pyplot()
delta = 0.1
plot([A[1], B[1], C[1], D[1], A[1]],
[A[2], B[2], C[2], D[2], A[2]],
seriestype=:shape, fillcolor=false, tickfontsize=12,
linewidth=2, xlims=(-0.5, 4), aspect_ratio=1, label="")
annotate!([A[1] - delta, B[1] + 2delta, C[1] + 2delta, D[1]- delta] .- delta,
[A[2], B[2], C[2], D[2]],
["A", "B", "C", "D"])
plot!([D[1], E1, F1, G1, D[1]],
[D[2], E2, F2, G2, D[2]],
seriestype=:shape, fillcolor=false, tickfontsize=12,
linewidth=2, aspect_ratio=1, label="")
annotate!([E1 + delta, F1 + delta, G1 + 2delta],
[E2 - delta, F2 + delta, G2],
["E(x,y)", "F", "G"], :left)
plot!([G1, A[1]], [G2, A[2]], linestyle=:dash, color=:black, label="")
F1 = F[1](a=>sqrt(17))
F2 = F[2](a=>sqrt(17))
H1 = H[1](a=>sqrt(17))
H2 = H[2](a=>sqrt(17))
I1 = 3 + H2
I2 = 3 - H1;
plot!([F1, H1, B[1], I1, F1],
[F2, H2, B[2], I2, F2],
seriestype=:shape, fillcolor=false, tickfontsize=12,
linewidth=2, label="")
annotate!([H1 + 2delta, I1 + delta], [H2 + delta, I2], ["H(u,v)", "I"], :left)
plot!([E1, H1], [E2, H2], linewidth=2, color=:black, label="")
savefig("fig2.png")