図形問題 平成25年度(2013)岐阜県数学問４「正答率０％の図形問題【高校入試なのに超難問】」(その2/2)をsympyとFreeCADでやってみたい。

長文です。再チャレンジです。今回作図しました。
ページ最後の**私の感想** だけでも、読んでもらえれば幸いです。

:::note info
[(その1/2 )](https://qiita.com/mrrclb48z/items/02725a9117fb050f8f76)のつづきです。旧いです。
[(類題翌年)](https://qiita.com/mrrclb48z/items/ec2f14e27926b363111b)平成26年度(2014年)洛南
:::
・問題文は2次元ですが、３次元FreeCADのマクロで、XY平面上に作図しました。
# オリジナル PASSLABO 様 
(途中5:10〜12:46)
解法その1,2,3からです。図形問題のポイントをスキップしています。
https://youtu.be/49z7Nj22ugE?t=310 解法その1 5:10
https://youtu.be/49z7Nj22ugE?t=549 解法その2 9:09 
https://youtu.be/49z7Nj22ugE?t=613 解法その3 10:13 **(高校数学)**
PASSLABO 様 (フル0:00〜12:46)
https://youtu.be/49z7Nj22ugE

### sympyで
・ver0.21 その1 AB=3x,△AHB∽△AHB,△AHBと△AHBのAH共通　8:27  
```python
# ver0.21 その1 AB=3x,△AHB∽△AHB,△AHBと△AHBのAH共通　8:27  
from sympy import *
var('x,y',positive=True)
print("#",solve([Eq(3*x,Rational(10,6)*(x+y)),Eq((3*x)**2-(x+y)**2,8**2-y**2)],[x,y])[0][0])
# sqrt(10)
```
・ver0.22 その1 AB=3x,△AHB∽△AHB,方べきの定理　8:34  
```python
from sympy import *
var('x,y',positive=True)
print("#",solve([Eq(3*x,Rational(10,6)*(x+y)),Eq(x*2*y,8*2)],[x,y])[0][0])
# sqrt(10)
```
・ver0.23 その2 AB=3x,△AHB∽△AHB,,∠BAH 角の二等分線の定理　9:10  
```python
# ver0.23 その2 AB=3x,△AHB∽△AHB,,∠BAH 角の二等分線の定理　9:10  
from sympy import *
var('x,y,AH',positive=True)
sol      =solve([Eq(3*x ,Rational(10,6)*(x+y)),Eq(3*x/x,AH/y)],[AH,y]   )
print("#",solve( Eq(8**2,sol[AH]**2+sol[y]**2)                ,[x]  )[0])
# sqrt(10)
```
・ver0.24 その2 AB=3x,△BECは二等辺三角形,直角三角形△ABC　9:40  
```python
# ver0.24 その2 AB=3x,△BECは二等辺三角形,直角三角形△ABC　9:40  
from sympy import *
var('x',positive=True)
print("#",solve( Eq(10**2,(3*x)**2+(x**2)),[x])[0])
# sqrt(10)
```
・ver0.25 その3 高校数学強さ 2倍角の定理　10:10  
```python
# ver0.25 その3 高校数学強さ 2倍角の定理　10:10  
from sympy import *
var('x,θ',positive=True)
EH=8*sin(θ)
eq_baikaku=Eq(cos(2*θ),Rational(8,10))
eq_houbeki=Eq(x*2*EH,8*2)
print("#",solve([eq_baikaku,eq_houbeki],[x,θ])[0][0])
# sqrt(10)
```

# オリジナル 高校入試虎の穴 様
＞延長して交点F...
＞角の二等分線
＞AFは8√10/3...
https://youtu.be/Q8_S-LZGdjM?t=685 　(途中11:25〜17:40)問４(1)からです。
https://youtu.be/Q8_S-LZGdjM?t=750 　(途中12:30〜17:40)問４(2)(ア)からです。
高校入試虎の穴 様 (フル0:00〜22:41)
https://youtu.be/Q8_S-LZGdjM
### sympyで
・ver0.3 
・角の二等分線の定理
```python
# ver0.3 高校入試虎の穴 様
from sympy import *
var('AH,degABD,degACD,degR,x',)
degABD=degACD #弧ADの円周角
print("#(1)    ",Triangle(asa=(degABD,AH,degR)).is_similar(Triangle(asa=(degACD,AH,degR))))
AC,CD=10,6
AD   =sqrt(AC**2-CD**2)
print("#(2)(ア)",AD)
AE=AD
CF=CD*AC/(AC+AD)                      # 角の二等分線の定理
FD=CD*AD/(AC+AD);AF=sqrt(AD**2+FD**2)
x =solve(Eq(x/AE,CF/AF),x)[0]
print("#   (イ)",x)
#(1)     True
#(2)(ア) 8
#   (イ) sqrt(10)
```

# sympyで(いつもの方法で)
#### ver0.41 弦が4つある内の一つ (直経ACをx軸方向)
・点Hを使っていない。
・<仮称>さしごの直角三角形の ダブル三平方 に同じ。円と円の交点計算で対応しました。
```python 
#  ver4.1　弦が4つある内の一つ (直経ACをx軸方向)  
from sympy import *
var('t',real=True,positive=True)
AC,CD=10,6
r = AC*Rational(1,2)
DA=sqrt(AC**2-CD**2)
O,A,C=map(Point,[(0,0),(-r,0),(r,0)])
D=Circle(A,DA).intersection(  Circle(C,CD)  )[1]   
E=A+DA*(O-A).unit
B=Circle(O,r).intersection(Line(D,E))[1]
print("#",B.distance(E),float(B.distance(E)))
# sqrt(10) 3.1622776601683795
```
#### ver0.7 弦が4つある内の一つ (弦CDをx軸方向)
・仮t=∠OCD,∠ODC
```python 
# ver0.7 sympy風。弦が4つある内の一つ (弦CDをx軸方向) 
from sympy import *
var('t',real=True,positive=True)
AC,CD=10,6
r=Rational(AC,2)
t=solve(Eq((CD*Rational(1,2))/r,cos(t)),t)[1]
O,C,D=map(Point,[(0,0),(-r*cos(t),-r*sin(t)),(r*cos(t),-r*sin(t))])
A=C+2*(O-C)
H=Circle(A.midpoint(D),A.distance(D)*Rational(1,2)) \
  .intersection(Line(A,A+((C-A).unit+(D-A).unit)*Rational(1,2)))[0]
B=Circle(O,r).intersection(Line(H,D))[0]
E=Line(A,C)  .intersection(Line(H,D))[0]
print("#",B.distance(E),float(B.distance(E)))
# sqrt(10) 3.1622776601683795
``` 

#### ver0.8  できませんでした。無理があるかも。ver0.6 弦が4つある内の一つ
・点Hを使わない方がいい
```python 
# できませんでした。無理があるかも。ver0.8 弦が4つある内の一つ (弦BDをx軸方向) 
from sympy import *
var('x,y',real=True,positive=True)
AC,CD=10,6
r =Rational(AC,2)
BD=Rational(1,2)*(x+2*y)
O,B=map(Point,[(0,0),(-BD/2,-sqrt(r**2-(BD/2)**2))])
D  =Point(-B.x,B.y)
E  =B+Point(x,0)
A  =E+2*(O-E)
C  =A+AC*(O-A).unit
# print(Eq(C.distance(D),CD))
sol=solve(Eq(C.distance(D),CD),x)
print(sol)
``` 
#### できませんでした。無理があるかも。ver0.9 連立方程式
・ ＞直角三角形に注目していいですし、.....
・点Hを使わない方がいい
```python 
# できませんでした。無理があるかも。ver0.9 連立方程式
from sympy import *
var('t,AD,AH',real=True,positive=True)
AC,CD=10,6
AD=sqrt(AC**2-CD**2)
sol=solve([Eq(sin(t)              ,AD/AC),
           Eq(cos(t*Rational(1,2)),AH/AD)], 
          [t,AH])
print(sol)
t,AH,=sol[1][0],sol[1][1]
x=AH*(tan(t)+tan(t/2))-2*AH*tan(t/2)
print("#",x,float(x))
x=x.simplify()
print("#",x,float(x))
``` 


# FreeCADのマクロで作図
・問題文は2次元ですが、３次元FreeCADのマクロで、XY平面に作図しました。
・計算部分は、Ver.0.6 の コピー貼り付けです。
・最後にAC水平を問題文の向きに回転しています。
```python
import FreeCAD
import Part
import DraftTools
import Draft
import Mesh
############################################################################
# ver0.6 sympy風。弦が4つある内の一つ (直経ACをx軸方向) 
# ・点Hを使っていない。
from sympy import *
var('t',real=True,positive=True)
AC,CD=10,6
r = AC*Rational(1,2)
DA=sqrt(AC**2-CD**2)
O,A,C=map(Point,[(0,0),(-r,0),(r,0)])
D=Circle(A,DA).intersection(  Circle(C,CD)  )[1]   
E=A+DA*(O-A).unit
B=Circle(O,r).intersection(Line(D,E))[1]
print("#",B.distance(E),float(B.distance(E)))
# sqrt(10) 3.1622776601683795
###########################################################################
H=Line(B,D).projection(A)
def myMatrixToPoint(myMatrix):    
    return Point2D(myMatrix[0],myMatrix[1])
def myPoinrToMatrix(myPoint):    
    return Matrix([[myPoint.x],[myPoint.y],[1]]) 
t=-Line(O,O+Point(1,0)).angle_between(Line(B,D) )
myTurn=Matrix([[cos(t),-sin(t),0],[sin(t),cos(t),0],[0,0,1]])
A=myMatrixToPoint( myTurn*myPoinrToMatrix(A) )
B=myMatrixToPoint( myTurn*myPoinrToMatrix(B) )
C=myMatrixToPoint( myTurn*myPoinrToMatrix(C) )
D=myMatrixToPoint( myTurn*myPoinrToMatrix(D) )
E=myMatrixToPoint( myTurn*myPoinrToMatrix(E) )
H=myMatrixToPoint( myTurn*myPoinrToMatrix(H) )
############################################################################
# 3D作図 z=0 XY平面に作図しました。
# 2024-10-08 fontsize 追加しました。従来と互換性がありません。 
# 2024-10-20 HR 
############################################################################
def myDimension(fontsize,myExtOvershoot,start_point, end_point,HVP):
    x1, y1 = start_point.args
    x2, y2 = end_point.args
    myFlipText = True
    if HVP=="PL":
       myP1  =Point(float(x1),float(y1))
       myP2  =Point(float(x2),float(y2))
       myFlipText = False
       myExtOvershoot1=abs(myExtOvershoot)
    elif HVP=="PR":
       myP1  =Point(float(x1),float(y1))
       myP2  =Point(float(x2),float(y2))
       myFlipText = False
       myExtOvershoot1=-abs(myExtOvershoot)
    elif HVP=="VL":
       if x1<x2 and y1<y2:
          myP1  =Point(float(x1),float(y1))
          myP2  =Point(float(x1),float(y2))
          myExtOvershoot1= abs(myExtOvershoot)
          myFlipText = False
       elif x1<x2 and y1>y2:
          myP1  =Point(float(x1),float(y1))
          myP2  =Point(float(x1),float(y2))
          myExtOvershoot1=-abs(myExtOvershoot)
       elif x1>x2 and y1<y2:
          myP1  =Point(float(x2),float(y1))
          myP2  =Point(float(x2),float(y2))
          myExtOvershoot1= abs(myExtOvershoot)
          myFlipText = False
       else:
          myP1  =Point(float(x2),float(y1))
          myP2  =Point(float(x2),float(y2))
          myExtOvershoot1=-abs(myExtOvershoot)
    elif HVP=="VR":
       if x1<x2 and y1<y2:
          myP1  =Point(float(x2),float(y1))
          myP2  =Point(float(x2),float(y2))
          myExtOvershoot1=-abs(myExtOvershoot)
          myFlipText = False
       elif x1<x2 and y1>y2:
          myP1  =Point(float(x2),float(y1))
          myP2  =Point(float(x2),float(y2))
          myExtOvershoot1= abs(myExtOvershoot)
       elif x1>x2 and y1<y2:
          myP1  =Point(float(x1),float(y1))
          myP2  =Point(float(x1),float(y2))
          myExtOvershoot1=-abs(myExtOvershoot)
       else:
          myP1  =Point(float(x1),float(y1))
          myP2  =Point(float(x1),float(y2))
          myExtOvershoot1= abs(myExtOvershoot)
    elif HVP=="HL":
       if x1 < x2 and y1<y2:
          myP1  =Point(float(x1),float(y2))
          myP2  =Point(float(x2),float(y2))
          myExtOvershoot1= abs(myExtOvershoot)
          myFlipText = False
       elif x1 < x2 and y1>y2:
          myP1  =Point(float(x1),float(y1))
          myP2  =Point(float(x2),float(y1))
          myExtOvershoot1= abs(myExtOvershoot)
          myFlipText = False
       elif x1 > x2 and y1<y2:
          myP1  =Point(float(x1),float(y1))
          myP2  =Point(float(x2),float(y1))
          myExtOvershoot1= abs(myExtOvershoot)
       else:
          myP1  =Point(float(x1),float(y2))
          myP2  =Point(float(x2),float(y2))
          myExtOvershoot1= abs(myExtOvershoot)
    elif HVP=="HR":
       #if x1<x2 and y1<y2: # 2024-10-20 HR
       if x1<x2 and y1<=y2:
          myP1  =Point(float(x1),float(y1))
          myP2  =Point(float(x2),float(y1))
          myExtOvershoot1=-abs(myExtOvershoot)
          myFlipText = False
       elif x1<x2 and y1>y2:
          myP1  =Point(float(x1),float(y2))
          myP2  =Point(float(x2),float(y2))
          myExtOvershoot1=-abs(myExtOvershoot)
          myFlipText = False
       elif x1>x2 and y1<y2:
          myP1  =Point(float(x1),float(y2))
          myP2  =Point(float(x2),float(y2))
          myExtOvershoot1=-abs(myExtOvershoot)
       else:
          myP1  =Point(float(x1),float(y1))
          myP2  =Point(float(x2),float(y1))
          myExtOvershoot1=-abs(myExtOvershoot)
    else:  
      print("")

    myM   =myP1.midpoint(myP2)
    myT   =myM+myExtOvershoot1*((myP1-myM).unit).rotate( -pi/2 )
    dimension = Draft.makeDimension(
        FreeCAD.Vector(myP1.x, myP1.y, 0),           # 点1の座標
        FreeCAD.Vector(myP2.x, myP2.y, 0),           # 点2の座標
        FreeCAD.Vector(float(myT.x),float(myT.y),0)  # 矢印の位置を中央に設定
    )
    # Ext Overshootを設定
    dimension.ViewObject.ExtOvershoot = -float(myExtOvershoot)
    
    dimension.ViewObject.FlipText = myFlipText

    # 矢印のスタイルを設定
    dimension.ViewObject.ArrowType    = "Arrow"  # 矢印のタイプを "Arrow" に設定
    dimension.ViewObject.ArrowSize    = fontsize/5
    dimension.ViewObject.TextSpacing  = 0
    dimension.ViewObject.LineColor    = (0.0, 1.0, 0.0)  # 緑色
    dimension.ViewObject.FontSize     = fontsize  # フォントサイズを指定
def myXYZ2Txt_2D(A):
    return ""
def myXYZ2Txt_XY_2D(A):
    return '(' + str(A.x) + ',' + str(A.y) +  ')'
def myTxtXYZ_2D(fontsize,A,myWedgei):
    P5x=float(A.x)
    P5y=float(A.y)
    P5z=0.0
    p5 = FreeCAD.Vector(P5x, P5y, P5z)
    myText = Draft.makeText(myWedgei, p5)
    myText.Label = myWedgei
    FreeCADGui.ActiveDocument.ActiveObject.FontSize = str(fontsize,)+' mm'
    return
def myTxtXYZ_S_2D(fontsize,*xy_tx):
    for i in range(1,int(len(xy_tx)/2)+1):
        myTxtXYZ_2D(fontsize,xy_tx[2*i-2],xy_tx[2*i-1]+myXYZ2Txt_2D(xy_tx[2*i-2]) )
    return
def myTxtXYZ_XY_S_2D(fontsize,*xy_tx):
    for i in range(1,int(len(xy_tx)/2)+1):
        myTxtXYZ_2D(fontsize,xy_tx[2*i-2],xy_tx[2*i-1]+myXYZ2Txt_XY_2D(xy_tx[2*i-2]) )
    return

def myTxtXYZ_MoveY_2D(fontsize,MoveY,A,myWedgei):
    P5x=float(A.x)
    P5y=float(A.y)+MoveY
    P5z=0.0
    p5 = FreeCAD.Vector(P5x, P5y, P5z)
    myText = Draft.makeText(myWedgei, p5)
    myText.Label = myWedgei
    FreeCADGui.ActiveDocument.ActiveObject.FontSize = str(fontsize,)+' mm'
    return
def myTxtXYZ_XY_S_MoveY_2D(fontsize,MoveY,*xy_tx):
    for i in range(1,int(len(xy_tx)/2)+1):
        myTxtXYZ_MoveY_2D(fontsize,MoveY,xy_tx[2*i-2],xy_tx[2*i-1]+myXYZ2Txt_XY_2D(xy_tx[2*i-2]) )
    return
############################################################################
# 3D作図 z=0 XY平面に作図しました。
############################################################################
# 円の作図　FrecCADのdocより
# https://wiki.freecad.org/Macro_Circle
def Freecad3D_circle(x=0.0,y=0.0,z=0.0,radius=0.0,diameter=0.0,circumference=0.0,area=0.0,startangle=0.0,endangle=0.0,arc=0.0,anglecenter=0.0,cord=0.0,arrow=0.0,center=0,placemObject=""):
    from math import sqrt, pi
    if placemObject == "":
        pl = FreeCAD.Placement()
        pl.Rotation = FreeCADGui.ActiveDocument.ActiveView.getCameraOrientation()   
        pl.Base = FreeCAD.Vector(x,y,z)
    else:
        pl = FreeCAD.Placement()
        pl = placemObject                                  # placement imposted
    if diameter != 0:                                      # with diameter
        radius = diameter / 2.0
    elif circumference != 0:                               # with circumference
        radius = (circumference / pi) / 2.0
    elif area != 0:                                        # with area
        radius =  sqrt((area / pi))
    elif (cord != 0) and (arrow != 0):                     # with cord and arrow
        radius = ((arrow**2) + (cord**2) / 4.0) / (arrow*2) 
    elif (arc != 0) and (anglecenter != 0):                # with arc and anglecenter central in degrees
        radius = ((360/anglecenter)*arc) / pi/2.0
        if endangle != 0:
            startangle  = endangle - anglecenter
        endangle   = anglecenter + startangle
        startangle  = endangle - anglecenter
    if radius != 0:
        try:
            Draft.makeCircle(radius,placement=pl,face=False,startangle=startangle,endangle=endangle,support=None)
            if center != 0:
                x=pl.Base.x
                y=pl.Base.y
                z=pl.Base.z
                Draft.makePoint(x,y,z)
        except Exception:
            App.Console.PrintError("Unexpected keyword argument" + "\n")
        App.ActiveDocument.recompute()
    else:
        App.Console.PrintMessage("Unexpected keyword argument" + "\n")
        App.Console.PrintMessage("circle(x,y,z,radius,diameter,circumference,area,startangle,endangle,[arc,anglecenter],[cord,arrow],center,placemObject)" + "\n")
        App.Console.PrintMessage("circle(radius=10.0,placemObject=App.Placement(App.Vector(11,20,30), App.Rotation(30,40,0), App.Vector(0,0,0)))" + "\n")
    return
def myCircle_2D(myCi):
    x=myCi.center.x
    y=myCi.center.y
    r=myCi.radius
    Freecad3D_circle(
           x=float(x),y=float(y),z=0.0,
           radius=float(abs(r)),
           center=1,
           placemObject=App.Placement(App.Vector(float(x),float(y),0),
           App.Rotation(0,0,0),App.Vector(0,0,0)))
    return
def myLine_2D(A,B):
    Ax,Ay,Az=float(A.x),float(A.y),0.0
    Bx,By,Bz=float(B.x),float(B.y),0.0
    pl = FreeCAD.Placement()
    pl.Rotation.Q = (0.4247081540122249, 0.17592004639554645, 0.33985110062924484, 0.8204732460821097)
    pl.Base = FreeCAD.Vector(-3.9166066876399563, -2.1670824762243774, 1.7495260956243028)
    points = [FreeCAD.Vector(Ax,Ay,Az), FreeCAD.Vector(Bx,By,Bz)]
    line = Draft.make_wire(points, placement=pl, closed=False, face=True, support=None)
    Draft.autogroup(line)
    return
def myLine_S_2D(*args):
    for i in range(1,len(args)):
        myLine_2D(args[i-1],args[i])
    return
def myLine_C_2D(*args):
    for i in range(1,len(args)):
        myLine_2D(args[i-1],args[i])
    myLine_2D(args[i],args[0])
    return
def myLine_H_2D(*args):
    for i in range(1,len(args)):
        myLine_2D(args[0],args[i])
    return
##################################################################################
myCircle_2D     (Circle(O,r))
myLine_C_2D     (A,B,E,H,D)  
myLine_S_2D     (A,C,D)  
myLine_S_2D     (A,H)
#
myFontsize =0.5
myOvershoot=myFontsize*7
#myTxtXYZ_XY_S_2D(myFontsize,O,"O",A,"A",B,"B",C,"C",D,"D",E,"E")
myTxtXYZ_XY_S_2D(myFontsize,O,"O",A,"A",B,"B",C,"C",D,"D")
# MoveY
myTxtXYZ_XY_S_MoveY_2D(myFontsize,myFontsize  ,E,"E")
myTxtXYZ_XY_S_MoveY_2D(myFontsize,myFontsize*2,H,"H")

myDimension(myFontsize,myOvershoot,C,A,"PL")
myDimension(myFontsize,myOvershoot,C,D,"PR")
myDimension(myFontsize,myOvershoot,A,D,"PL")
myDimension(myFontsize,myOvershoot,B,E,"HR")
####################################################################################
doc = App.activeDocument()
#App.ActiveDocument.addObject("App::Origin", "Origin")
#App.ActiveDocumen!t.getObject('Origin').Visibility = True
App.ActiveDocument.recompute()
Gui.activeDocument().activeView().viewAxonometric()
Gui.SendMsgToActiveView("ViewFit")

```
・(青色の)角度寸法は、ニセモノです。Part＞計測＞角度計算 です。
・角度寸法の表示は、まだ勉強中です。

isometric方向?です。(省略)
拡大図 回転前




拡大図 回転後(CADの操作で角度寸法線を追加)
![111.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109698/03f11f01-151e-6265-ec56-cdeed8d89313.png)


# 参照
#### 三四五（さしご）の定理
＞<仮称>ダブル三平方の さしごの直角三角形

https://qiita.com/mrrclb48z/items/ff4388ace062b63e98a8

#### 相似 と 合同

https://qiita.com/mrrclb48z/items/d46183cd3864ed4e999f

https://qiita.com/mrrclb48z/items/cf38c0415d91e15b90f7


# 私の感想1
内容の重複があります。
本問の設問(2)(イ)について。BEの長さ?

■図を見ただけで、相似の組み合わせが複数ある。
△ABHと△ACD(設問(1)より。)
△ABEと△ECD(蝶々)
△BCEと△EAD(蝶々。二等辺三角形)
△AEHと△HAD(合同。直角三角形)
さらに、延長して交点Fを追加すると組み合わせの数がふえる。
相似の組み合わせの数だけ、解法がある?
どれを、選択するかだと思いました。
(一目で解答が見える方もおられます。)

■(解法の技は別にして、)**出題者の誘導** にのって、
△ABHと△ACDの「相似比」(設問(1)より角の三等分へ)　8√10/3:8。線分HD非表示。
△ABHと△ACDの辺の長さ
を求めるのがベストのように思います。

■私は、(高校入試虎の穴 様の)黄色と青色の三角形は気がつきませんでした。
設問(1)(2)(3)じゃないところがステキです。出題者の誘導かも。
この設問で時間を使わない方がイイよ。。
・(直角?)三角形の角の二等分線の長さは、三平方の定理を使って計算ができる。
　(高校生には不要の定理?)
・蝶々?の相似でなくて、隣接した三角形の相似
過去問の類題を教えて下さい。よろしくお願いします。

# 私の感想2(追加洛南2014の問題後)
■ニッキーランド様に洛南の問題を教えてもらいました。
<仮称>ダブル三平方の さしごの直角三角形 
半角・倍角の公式を使わなくてもすみます。
試験用紙を、ACを水平に回転して見る。

<仮称>ダブル三平方の さしごの直角三角形 。洛南　 数学2014 平成26年
<仮称>さしごの直角三角形の ダブル三平方 。岐阜県 数学 2013 平成25年
<仮称>両者。オモテウラの関係問題。ウラオモテの関係問題。ドッチ?

■岐阜県の問題をさしごを使う解法は、出題者のユウドウにのっていないので
あまり望ましくない。半角・倍角の公式を使うのもです。所謂、
設問1を直接?使わずに最終問題の解法パターンは、自転車君の問題(共通テ2022)に似ています。

よって、
高校入試虎の穴 様の解法の、ユウドウ(1)相似の問題、(2)図の右端から、片押し?がわかりやすいと思いました。


# 参考(ダブル三平方???)
覚えていると得するよ の ページの最後(64)  
http://ynaka.html.xdomain.jp/toku2.html