# 11학년 수학 수1
# 해석 - 삼각함수 - 삼각함수
# 7
import random
def problem_num(): #문제에 들어갈 값 범위 랜덤 함수
global a, b, ans
n = randint(1, 5)
m = randint(1, 5)
nlist = [QQ(n/m), QQ(m/n), m, n]
a, b = 0, 0
while a <= b :
a, b = random.sample(nlist, 2)
ans = (a*b+1)/(sqrt(a^2+1)*sqrt(b^2+1))
print(a, b, ans)
return ans # 답과 문제 랜덤 값 반환
def problem_answer_list(): # 답안과 결합될 숫자(랜덤화 및 중복 값 제거)를 생성하는 함수
ans = problem_num()
answer_list=set()
answer_list.add(ans)
while len(answer_list) != 5:
answers = ans + randint(-5, 5)/(sqrt(a^2 + 1)*sqrt(b^2 + 1))
while answers in answer_list:
answers = ans + randint(-5, 5)/(sqrt(a^2 + 1)*sqrt(b^2 + 1))
answer_list.add(answers)
return list(answer_list)
select_answer_list =problem_answer_list()
answer=ans
select_answer_list.sort()
var('x')
#문제
show(html("<p>두 직선 $y = %s$ 와 $y = %s$ 가 이루는 예각의 크기를 $\\theta$ 라 할 때, 아래 그림을 이용하여 $\\cos\\theta$ 를 구하시오.</p>"%(latex(a*x), latex(b*x))))
f = plot(a*x, 0, 3, color='black', legend_label=a*x)
g = plot(b*x, 0, 3, color='black', legend_label=b*x)
h = line([(2,-1),(2,max(2*a, 2*b)+2)], legend_label='x=2')
r = arc((0,0), 1, sector=(arctan(a),arctan(b)), color='green')
A = point([(2, 2*a)], color = 'red', size = 15, legend_label=(2, 2*a))
B = point([(2, 2*b)], color = 'red', size = 30, legend_label=(2, 2*b))
show(f+g+h+r+A+B, aspect_ratio=1, ticks = [1, 1])
sp = LatexExpr('\\quad')
spp = LatexExpr('\\qquad')
for i in range(5):
show(html("<p>%s. %s</p>"%(i+1,select_answer_list[i])))
#답안 확인
@interact
def _(answers = selector([(None, ""),(select_answer_list[0], "1"), (select_answer_list[1], "2"), (select_answer_list[2], "3"), (select_answer_list[3], "4"), (select_answer_list[4], "5")], buttons=True), auto_update=False):
if answer == answers:
show(html("<p><span style='color:blue'>Correct(정답)</span></p><p>Answer(답안): <br> $x=2$ 인 직선이 주어진 이유를 잘 생각해 보자. <br> 위의 그림에서 직선과 $y=%s$ 와 $y=%s$ 의 교점을 각각 $A$ , $B$ 라고 하면 $A=(2, %s),\\ B=(2, %s)$ 이다. <br> 이때 $\\overline{OA}=%s, \\ \\overline{OB}=%s, \\ \\overline{AB}=%s$ 이므로 $\\triangle{OAB}$ 에 코사인 제2법칙을 적용한다. <br> $\\cos\\theta = \\frac{(%s)^2+(%s)^2-(%s)^2}{2\\times(%s)(%s)} = %s$"%(latex(a*x), latex(b*x), latex(2*a), latex(2*b), latex(sqrt(4+4*a^2)), latex(sqrt(4+4*b^2)), latex(2*(a-b)), latex(sqrt(4+4*a^2)), latex(sqrt(4+4*b^2)), latex(2*(a-b)), latex(sqrt(4+4*a^2)), latex(sqrt(4+4*b^2)), latex(answer))))
show(html("<input type = 'hidden' name = 'checking' class = 'val_chk' value = '1'>"))
elif answers == None:
show(html("<p><span style='color:blue'>Please input your answer in the spaces above.</span></p><p>(위의 빈칸에 답을 입력하고 [Update(확인)] 버튼을 클릭하세요.)</p>"))
else:
show(html("<p><span style='color:red'>Incorrect(오답)</span></p><p>Answer(답안): <br> $x=2$ 인 직선이 주어진 이유를 잘 생각해 보자. <br> 위의 그림에서 직선과 $y=%s$ 와 $y=%s$ 의 교점을 각각 $A$ , $B$ 라고 하면 $A=(2, %s),\\ B=(2, %s)$ 이다. <br> 이때 $\\overline{OA}=%s, \\ \\overline{OB}=%s, \\ \\overline{AB}=%s$ 이므로 $\\triangle{OAB}$ 에 코사인 제2법칙을 적용한다. <br> $\\cos\\theta = \\frac{(%s)^2+(%s)^2-(%s)^2}{2\\times(%s)(%s)} = %s$"%(latex(a*x), latex(b*x), latex(2*a), latex(2*b), latex(sqrt(4+4*a^2)), latex(sqrt(4+4*b^2)), latex(2*(a-b)), latex(sqrt(4+4*a^2)), latex(sqrt(4+4*b^2)), latex(2*(a-b)), latex(sqrt(4+4*a^2)), latex(sqrt(4+4*b^2)), latex(answer))))
show(html("<input type = 'hidden' name = 'checking' class = 'val_chk' value = '0'>"))
|
Click to the left again to hide and once more to show the dynamic interactive window
|