正方形751の面積の問題(名大数学 参考より)「中学生にもわかる名古屋大学入試問題」をChatGPTとsympyとFreeCADでやってみたい。

・正確に作図しました。**点Pを点Eと表示していません。**
・???ページの最後に、不思議な類題があります。
　??? **高校入試 直線5 6 13の離れの問題**
 
# オリジナル
#### ・名古屋大学の問題文はテキストのみ
名大文系 1963前期 3（理系前期2と同じ）
＜ 名古屋大学 数学入試問題過去問 ６４年分（現在前期のみ）様
http://server-test.net/math/php.php?name=05_nagoya&v1=0&v2=1963&v3=1&v4=3&y=1963&n=2

#### ・YouTube 
YUUU0123 様 (0:00〜:7:44)

中学生にもわかる名古屋大学入試問題

https://youtu.be/qjN7YwwiDIk?si=iQCEUWod-hwhkYjS

#### ・大学入試数学問題集成 様＞未登録 
1989年度より登録
https://mathexamtest.web.fc2.com/daigakubetumj/10481index.html#y1997 


# ChatGPT-3.5先生へ

```
正方形 ABCD とその内部の 1 点 P がある。線分 AP，BP，CP の長さがそれぞれ 7，5，1 であるとき，この正方形の面積を求めよ。
```
ChatGPT (以下抜粋)
User
```
sympyで
```
```python
import sympy as sp

# シンボルの定義
x, y, a = sp.symbols('x y a')

# 方程式の定義
eq1 = sp.Eq(x**2 + y**2, 49)  # AP = 7
eq2 = sp.Eq((x - a)**2 + y**2, 25)  # BP = 5
eq3 = sp.Eq((x - a)**2 + (y - a)**2, 1)  # CP = 1

# 方程式を解く
solutions = sp.solve([eq1, eq2, eq3], (x, y, a))

# 解の表示
solutions
```
User
```
sympyの円の交点計算で
```
ChatGPT

```python
import sympy as sp

# シンボルの定義
x, y, a = sp.symbols('x y a')

# 円の方程式の定義
circle1 = sp.Eq(x**2 + y**2, 49)  # AP = 7
circle2 = sp.Eq((x - a)**2 + y**2, 25)  # BP = 5
circle3 = sp.Eq((x - a)**2 + (y - a)**2, 1)  # CP = 1

# 円の交点を求める
intersection_points = sp.solve([circle1, circle2, circle3], (x, y, a))

# 解の表示
intersection_points
```
```
では、実際にPythonで実行してみましょう。
```
```
間違っていませんか
```

ChatGPT
```
確認ありがとうございます。解答を見直しましょう。
```
# sympyで
**ver0.1 距離で連立方程式。**
・ChatGPTと同じ
The Euclidean distance between self and another GeometricEntity.
https://docs.sympy.org/latest/modules/geometry/points.html#sympy.geometry.point.Point.distance
```python
# ver0.1 距離で連立方程式。 
from sympy import *
var('d,Px,Py',real=True,poitive=True)
A,B,C,P=map(Point,[(0,d),(0,0),(d,0),(Px,Py)])
sol=solve([Eq(P.distance(A),7),
           Eq(P.distance(B),5),
           Eq(P.distance(C),1)
          ],[d,Px,Py])
print("#",sol)
print("#",sol[3])
print("#",sol[3][0])
print("#",sol[3][0]**2)
# [(-4*sqrt(2), -7*sqrt(2)/2, -sqrt(2)/2), (-3*sqrt(2), -7*sqrt(2)/2, sqrt(2)/2), (3*sqrt(2), 7*sqrt(2)/2, -sqrt(2)/2), (4*sqrt(2), 7*sqrt(2)/2, sqrt(2)/2)]
# (4*sqrt(2), 7*sqrt(2)/2, sqrt(2)/2)
# 4*sqrt(2)
# 32
```
**ver0.2 できませんでした。???これは調子にのりすぎ。終了しません。**
・変数で計算。
```python
# ver0.2 できませんでした。変数で計算。???これは調子にのりすぎ。終了しません。 
from sympy import *
var('d,Px,Py' ,real=True,poitive=True)
var('PA,PB,PC',real=True,poitive=True)
A,B,C,P=map(Point,[(0,d),(0,0),(d,0),(Px,Py)])
sol=solve([Eq(P.distance(A),PA),
           Eq(P.distance(B),PB),
           Eq(P.distance(C),PC)
          ],[d,Px,Py])
print("#",sol)
print("#",sol[3])
print("#",sol[3][0])
```

**ver0.3 円と円の交点計算。**
```python
# ver0.3 円と円の交点計算。
from sympy import *
var('d',real=True,poitive=True)
A,B,C=map(Point,[(0,d),(0,0),(d,0)])
P1 =Circle(A,7).intersection(Circle(B,5))[1]
P2 =Circle(B,5).intersection(Circle(C,1))[1]
sol=solve([Eq(P1.x,P2.x),Eq(P1.y,P2.y)],[d])
print("#",sol)
print("#",sol[1][0])
print("#",sol[1][0]**2)
print()
rep={d:sol[1][0]}
A=A         .subs(rep)
B=B         .subs(rep)
C=C         .subs(rep)
D=Point(d,d).subs(rep)
P=P1        .subs(rep)
print("#",           P.distance(A) .simplify())
print("#",           P.distance(B) .simplify())
print("#",sqrtdenest(P.distance(C)).simplify())
# [(-4*sqrt(2),), (4*sqrt(2),)]
# 4*sqrt(2)
# 32

# 7
# 5
# 1
```
# FreeCADのマクロで作図
・計算部分は、Ver.0.1 の コピー貼り付けです。
```python
import FreeCAD
import Part
import DraftTools
import Draft
import Mesh
############################################################################
# 名古屋大学
# ver0.1 距離で連立方程式。 
from sympy import *
var('d,Px,Py',real=True,poitive=True)
A,B,C,P=map(Point,[(0,d),(0,0),(d,0),(Px,Py)])
sol=solve([Eq(P.distance(A),7),
           Eq(P.distance(B),5),
           Eq(P.distance(C),1)
          ],[d,Px,Py])
print("#",sol)
print("#",sol[3])
print("#",sol[3][0])
print("#",sol[3][0]**2)
############################################################################
rep={d:sol[3][0],Px:sol[3][1],Py:sol[3][2]}
A=A         .subs(rep)
B=B         .subs(rep)
C=C         .subs(rep)
D=Point(d,d).subs(rep)
P=P         .subs(rep)
############################################################################
# 3D作図 z=0 XY平面に作図しました。
############################################################################
def myXYZ2Txt_2D(A):
    return '(' + str(A.x) + ',' + str(A.y) +  ')'
    #return ""
def myTxtXYZ_2D(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 = '0.5 mm'
 #  FreeCADGui.ActiveDocument.ActiveObject.FontSize = '1.0 mm'
    return
def myTxtXYZ_S_2D(*xy_tx):
    for i in range(1,int(len(xy_tx)/2)+1):
        myTxtXYZ_2D(xy_tx[2*i-2],xy_tx[2*i-1]+myXYZ2Txt_2D(xy_tx[2*i-2]) )
    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
##################################################################################
myLine_C_2D  (A,B,C,D)  
myLine_S_2D  (A,P,C)  
myLine_S_2D  (B,P)  
myTxtXYZ_S_2D(A,"A",B,"B",C,"C",D,"D")
myTxtXYZ_S_2D(P,"P")
####################################################################################
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")
```

isometric方向?です。
![1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109698/6f6e0743-27b0-3f6d-3b6a-7b831330e8f1.png)

拡大図
![99.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109698/03c4669e-d51e-805e-1e85-caa9d31c98c7.png)


拡大図(CADの操作で寸法線を追加)
・(青色の)角度寸法は、ニセモノです。Part＞計測＞角度計算 です。
・角度寸法の表示は、まだ勉強中です。
![3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109698/dfbaaf3e-74d4-4cdc-a736-1a5886070ea2.png)

# sympyで(オリジナル 様の方法を参考に)
＞実は、これは一直線になります。
・補助線(鉛直線・水平線)を追加。
```python
from sympy import *
var('p,q,r,s,x',real=True,poitive=True)
eq1A=Eq(p**2+r**2,7**2)
eq1B=Eq(q**2+r**2,x**2)
eq2A=Eq(p**2+s**2,5**2)
eq2B=Eq(q**2+s**2,1**2)
eq1 =Eq(eq1A.lhs-eq1B.lhs,eq1A.rhs-eq1B.rhs)         ;print("#",eq1)
eq2 =Eq(eq2A.lhs-eq2B.lhs,eq2A.rhs-eq2B.rhs)         ;print("#",eq2)
sol =solve(Eq(eq1.lhs-eq2.lhs,eq1.rhs-eq2.rhs),x)[1] ;print("#",sol)
print("#",8*8*Rational(1,2))
# Eq(p**2 - q**2, 49 - x**2)
# Eq(p**2 - q**2, 24)
# 5
# 32
```
# 参考
# いつもの? sympyの実行環境と 参考のおすすめです。
[(テンプレート)](https://qiita.com/mrrclb48z/items/00dd08b0317069be9342)

・以下ができたら、助かります。指定と全部です

https://qiita.com/mrrclb48z/items/555d85face87552c34fb

https://qiita.com/mrrclb48z/items/5f57eac92aaca30e85c0

# いつもと違うおすすめです。
・PASSLABO 様
伝説の入試数学 図形問題【超シンプルなのに難問】
＞図形の問題のポイント
＞図形の世界の標準は三角形

https://youtu.be/-qKjS2gqJGU


・多数
＞名大数学 正方形751の面積の問題

https://www.google.com/search?q=1963+%E5%90%8D%E5%8F%A4%E5%B1%8B%E5%A4%A7%E5%AD%A6+%E6%95%B0%E5%AD%A6&oq=1963+%E5%90%8D%E5%8F%A4%E5%B1%8B%E5%A4%A7%E5%AD%A6++%E6%95%B0%E5%AD%A6&gs_lcrp=EgZjaHJvbWUyBggAEEUYOdIBCTg1NjYwajBqOagCALACAA&client=ms-android-huawei&sourceid=chrome-mobile&ie=UTF-8


# 教えて下さい。??? 高校入試 直線5 6 13の離れの問題???
　アドバイスいただけると幸いです。
・直線が９０度折れているところを、折らない。直線？？？
　私は説明できません。　本問題と同じに見えます。

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

・今さらですけど、私は**内部**を考慮していませんでした。
　BP=s＊BC+t＊BA (0<s,t<1)で定義しないとだめでした。