・ページ最後のリンクおすすめです。ユウドウです。
・(再かも)これは自分の力だけで無理でした! sympyの力で出来ました!
・もう少し精度?を上げたいので(その1/2)です。(その2/2) 作成中です。
(その2/3) へ。
https://qiita.com/mrrclb48z/items/b2428c0638c7fe6ec5a5
(その3/3) へ。
https://qiita.com/mrrclb48z/items/f042230646cd4e1ba4e4
オリジナル
・ライブ?のようです。
まなびスクエア 様 (0:00〜1:03:28 ) いつもお世話になっております。
↓【これぞ図形の最高峰】灘中の算数の難問で頭をフル回転させよう【小学生が解く算数】
https://youtu.be/svIE6BIiTww
29:30 >板書ってね。難しいんデスヨ。
いつものsympyで(オリジナル Youtbe様の方法を参考に)
ver0.1
・先生の丸写しのつもりでした。
これは自分の力で無理でした!(youtubeコメント様風) 途中省略です。あきらめました。
# ver0.1# # ver0.1 EFGH
# from sympy import *
# var('maru,batu,k',real=True,positive=True)
# var('hatena' ,real=True,positive=True)
# #
# DE,EF=4,6
# EI =3
# eq1 =Eq(maru +maru +batu ,180)
# eq2 =Eq(hatena+hatena+batu+batu,180)
# sol =solve([eq1,eq2],[hatena,batu]) # ;print(sol)
# # (再)途中省略ですあきらめました。
# # (再)29:30 >板書ってね。難しいんデスヨ。
# EFH =Rational(126,25)
# EGH =Rational(324,25)
# EFGH=EFH+EGH
# print("#",EFGH)
いつもの sympyで
ver1.1
・sympyなら基本です。 CAD風。
・点Hの座標計算しました。
# ver1.1
from sympy import *
DE,EF=4,6
D,E,F,G=map(Point,[(0,DE),(0,0),(EF,0),(EF,DE)])
H =Circle(D,DE).intersection(Circle(E.midpoint(F),Rational(1,2)*EF))[1] ;print("#",H)
print("#",Polygon(E,F,G,H).area)
# Point2D(96/25, 72/25)
# 324/25
ver1.2
・上と同じ。
# ver1.2
from sympy import *
DE,EF=4,6
D,E,F,G=map(Point,[(0,DE),(0,0),(EF,0),(EF,DE)])
print("#",Polygon(E,F,G,Circle(D,DE).intersection(Circle(E.midpoint(F),Rational(1,2)*EF))[1]).area)
# 324/25
ver2.1
・交点計算の公式?(リンクあり) に代入しました。信ずるものは救われる?
・>知っている人であれば...
大人の中には、円と円の交点計算の公式を覚えている人がいるかもしれない。
受験生のボクちゃんの中にもいらっしゃるかも。
又は、覚えていなくても、すぐ出せる
# ver2.1
from sympy import *
var('x1,y1,r1',real=True,positive=True)
var('x2,y2,r2',real=True,positive=True)
DE,EF =4,6
D,E,F,G=map(Point,[(0,DE),(0,0),(EF,0),(EF,DE)])
rep={x1:E.midpoint(F).x,y1:E.midpoint(F).y,r1:EF/2, \
x2:D.x ,y2:D.y ,r2:DE \
}
H =Point(
(x1**3 - x1**2*x2 + x1*x2**2 - x1*y1**2 + 2*x1*y1*y2 - x1*y2**2 + x1*r1**2 - x1*r2**2 - x2**3 - x2*y1**2 + 2*x2*y1*y2 - x2*y2**2 - x2*r1**2 + x2*r2**2 - y1*sqrt(-(x1**2 - 2*x1*x2 + x2**2 + y1**2 - 2*y1*y2 + y2**2 - r1**2 + 2*r1*r2 - r2**2)*(x1**2 - 2*x1*x2 + x2**2 + y1**2 - 2*y1*y2 + y2**2 - r1**2 - 2*r1*r2 - r2**2)) + y2*sqrt(-(x1**2 - 2*x1*x2 + x2**2 + y1**2 - 2*y1*y2 + y2**2 - r1**2 + 2*r1*r2 - r2**2)*(x1**2 - 2*x1*x2 + x2**2 + y1**2 - 2*y1*y2 + y2**2 - r1**2 - 2*r1*r2 - r2**2)))/(2*(x1**2 - 2*x1*x2 + x2**2 + y1**2 - 2*y1*y2 + y2**2)), \
(x1**2*y1 + x1**2*y2 - 2*x1*x2*y1 - 2*x1*x2*y2 + x1*sqrt(-(x1**2 - 2*x1*x2 + x2**2 + y1**2 - 2*y1*y2 + y2**2 - r1**2 + 2*r1*r2 - r2**2)*(x1**2 - 2*x1*x2 + x2**2 + y1**2 - 2*y1*y2 + y2**2 - r1**2 - 2*r1*r2 - r2**2)) + x2**2*y1 + x2**2*y2 - x2*sqrt(-(x1**2 - 2*x1*x2 + x2**2 + y1**2 - 2*y1*y2 + y2**2 - r1**2 + 2*r1*r2 - r2**2)*(x1**2 - 2*x1*x2 + x2**2 + y1**2 - 2*y1*y2 + y2**2 - r1**2 - 2*r1*r2 - r2**2)) + y1**3 - y1**2*y2 + y1*y2**2 + y1*r1**2 - y1*r2**2 - y2**3 - y2*r1**2 + y2*r2**2)/(2*(x1**2 - 2*x1*x2 + x2**2 + y1**2 - 2*y1*y2 + y2**2)) \
).subs(rep)
print("#",Polygon(E,F,G,H).area)
# 324/25
ChatGPT先生にver1.1 を丸投げです。PNG図だけ出力して下さい。

感想
・大人から見ると、意地悪な問題ですねー。
上下を反転。D(0,0),E(0,4),G(6 0),F(6,4)
であれば、連立方程式で多少やる気がでます。省略。
・円と円の交点計算を相似で。見たような見てないような。コメント募集中。
いつもの? sympyの実行環境 と 参考のおすすめです。
sympyのweb上での実行方法
SymPy Live Shellで。
ソースコードの解説は、私よりGemini先生へのソースコードの丸投げがおすすめです。質問の追加はいくらでも。
モーダル対応?「実行して」。「作図して」「問題文章の丸投げ」いい時代です。
いつもと違うおすすめです。
sympy のdoc
・いらないカモ。
ver0.1
ver1.1
・intersection(o) < Circle
The intersection of this circle with another geometrical entity.
https://docs.sympy.org/latest/modules/geometry/ellipses.html#sympy.geometry.ellipse.Circle.intersection
ver1.2
ver2.1
参考文献
・文献で、円と円の交点計算の公式の手計算を見た記憶があります。
書名? 手元にないのでゴメンナサイ。
学習指導要領
13:18
【算数編】小学校学習指導要領(平成29年告示)解説 (PDF:6MB) PDF
P250 B 図形 B(1)平面図形の性質 ア 図形の形や大きさが決まる要素と図形の合同
https://www.mext.go.jp/content/20211102-mxt_kyoiku02-100002607_04.pdf#page=256
Qiita内で