부분 결과 · 오류와 사용량 확인 보류는 채점에서 제외합니다. 오류·답 추출 실패 재시도 기록을 포함하며 원본은 보존했습니다. Python 실행 성공은 수학적 증명 검증을 뜻하지 않습니다.
그림과 같이 지름의 길이가 5인 두 원 , 를 두 밑면으로 하는 원기둥이 있고, 원 위의 인 두 점 A,B와 원 위의 인 두 점 C,D에 대하여 이다. 점 D에서 원 을 포함하는 평면에 내린 수선의 발을 H라 하자. 사각형 ABCD의 넓이가 삼각형 ABH의 넓이의 4배일 때, 이 원기둥의 높이는?
[원문 그림의 텍스트 전사] 그림에서 C1은 아래 밑면, C2는 위 밑면이다. 사각형의 꼭짓점 순서는 A,B,C,D이고, 아래 밑면의 삼각형 ABH 및 수선 DH가 그려져 있다.
① ② ③ ④ ⑤
최종 답은 선택지 번호 1~5 중 하나를 안에 쓰세요.
<.answer_panel>
Recorded Python call:
import sympy as sp
r = sp.Rational(5, 2) # 반지름 = 지름 5 / 2
h = sp.symbols('h', positive=True) # 원기둥의 높이 (DH = h)
# 밑면 원 C1: 평면 z=0, 중심 원점, 반지름 r. AB = 5 = 지름이므로 AB는 지름
A = sp.Matrix([-r, 0, 0])
B = sp.Matrix([ r, 0, 0])
# 윗면 원 C2 위의 점 C(c1,c2,h), D(d1,d2,h)
d1, d2, c1, c2 = sp.symbols('d1 d2 c1 c2', real=True)
D = sp.Matrix([d1, d2, h])
C = sp.Matrix([c1, c2, h])
# --- 조건 1: AD = BC ---
AD2 = sp.expand((D - A).dot(D - A))
BC2 = sp.expand((C - B).dot(C - B))
rel = sp.factor(sp.simplify(AD2 - BC2))
print("AD^2 - BC^2 =", rel, " -> (d1 + c1) = 0, 즉 c1 = -d1")
# --- 조건 2: C,D가 원 위 + CD = 3 ---
# c2^2 = d2^2 = r^2 - d1^2 이므로 c2 = ±d2
# (i) c2 = -d2 이면 CD^2 = 4(d1^2+d2^2) = 4r^2 = 25 -> CD = 5 ≠ 3 : 모순
# (ii) c2 = d2 -> CD^2 = 4 d1^2 = 9 -> |d1| = 3/2, |d2| = 2
print("case c2=-d2 gives CD =", 2*sp.sqrt(r**2), "≠ 3 (불가능)")
d1v = -sp.Rational(3, 2) # D는 A 쪽(왼쪽), C는 B 쪽(오른쪽) -> 단순 사각형
d2v = sp.Integer(2)
Cq = sp.Matrix([sp.Rational(3, 2), d2v, h])
Dq = sp.Matrix([d1v, d2v, h])
H = sp.Matrix([d1v, d2v, 0]) # D에서 밑면 평면에 내린 수선의 발
print("|AB| =", sp.sqrt((B-A).dot(B-A)), " |CD| =", sp.sqrt((Dq-Cq).dot(Dq-Cq)))
print("AD^2 =", sp.simplify((Dq-A).dot(Dq-A)), " BC^2 =", sp.simplify((Cq-B).dot(Cq-B)),
" (같음:", sp.simplify((Dq-A).dot(Dq-A) - (Cq-B).dot(Cq-B)) == 0, ")")
print("C,D,H 의 원 위 조건 (x^2+y^2-r^2):",
sp.simplify(d1v**2 + d2v**2 - r**2), sp.simplify(sp.Rational(9,4)+4 - r**2))
# 평면성 확인
n = (B - A).cross(Cq - A)
print("ABCD 평면성 잔차 n·(D-A) =", sp.simplify(n.dot(Dq - A)))
# --- 넓이 ---
S_ABCD = sp.Ristic if False else sp.Rational(1,2)*(B - A).cross(Cq - A).norm() \
+ sp.Rational(1,2)*(Cq - A).cross(Dq - A).norm()
S_ABH = sp.Rational(1,2)*(B - A).cross(H - A).norm()
S_ABCD = sp.simplify(S_ABCD); S_ABH = sp.simplify(S_ABH)
print("사각형 ABCD 넓이 =", S_ABCD, " (사다리꼴 공식 (1/2)(5+3)sqrt(h^2+4)과 일치:",
sp.simplify(S_ABCD - 4*sp.sqrt(h**2 + 4)) == 0, ")")
print("삼각형 ABH 넓이 =", S_ABH)
sol = sp.solve(sp.Eq(S_ABCD, 4*S_ABH), h)
print("방정식 S_ABCD = 4*S_ABH 의 해: h =", sol, " -> h^2 =", sp.simplify(sol[0]**2))
# --- 수치 검증 ---
import numpy as np, math
hv = math.sqrt(21)
An = np.array([-2.5,0,0]); Bn = np.array([2.5,0,0])
Cn = np.array([1.5,2,hv]); Dn = np.array([-1.5,2,hv]); Hn = np.array([-1.5,2,0.])
def d3(P,Q): return float(np.linalg.norm(P-Q))
def area3(P,Q,R): return 0.5*float(np.linalg.norm(np.cross(Q-P, R-P)))
print("\n수치(h=√21≈%.6f):" % hv)
print("AB=%.6f CD=%.6f AD=%.6f BC=%.6f" % (d(An,Bn) if False else np.linalg.norm(Bn-An), np.linalg.norm(Dn-Cn), np.linalg.norm(Dn-An), np.linalg.norm(Cn-Bn)))
print("H가 밑면 원 위: |H|=", np.linalg.norm(Hn[:2]), "(반지름 2.5)")
S1 = area3(An,Bn,Cn) + area3(An,Cn,Dn); S2 = area3(An,Bn,Hn)
print("S_ABCD=%.6f S_ABH=%.6f 비율=%.6f (4이어야 함)" % (S1, S2, S1/S2))
for k in [1,2,3,4,5]:
hk = math.sqrt(k)
print(" h=√%d: S_ABCD=%.4f, 4*S_ABH=20, 비율=%.4f" % (k, 4*math.sqrt(hk**2+4), 4*math.sqrt(hk**2+4)/20))
풀이 요약
좌표 설정: 아래 밑면 : , 중심 원점, 반지름 ; 위 밑면 : . 지름이므로 , 로 둘 수 있고, , , .
AD = BC (Python 확인): 이고, (두 점 모두 위 원 위)이므로 .
CD = 3과 원 위 조건: , 이므로 . 이면 (모순), 따라서 이고 (왜냐하면 ). 가 쪽인 배치(단순 사각형)를 택하면
검증: , 는 밑면 원 위 (), 4점 평면성 잔차 .
넓이와 방정식:
- 삼각형 : 밑변 , 높이 넓이 . (벡터 계산과 일치)
- 사각형 : 평행한 (축 방향 공통)인 사다리꼴, 두 평행변 사이 거리 넓이 .
조건 :
Python이 방정식의 해를 정확히 , 로 확인했고, 수치 검증(에서 , , 비율 ) 및 모든 선택지 대소 비교도 일치했습니다.
Comparative Analysis (Pgeometry_27) (Average across runs)
Averages use reported measurements only. Missing usage is not treated as zero.