반응형
올해 제 학교생활의 가장 큰 보람이자 즐거움은 수학 기초반 수업 입니다.
학생들이 그동안은 곧 잘 따라왔는데 이 단원부터 굉장히 어려워 하더라구요..
연습이 많이 필요한 단원이라 동일한 유형으로 10문제씩 4세트 총 40문제 만들었습니다.
과목 = "고1수학"
단원 = "II.방정식과부등식"
제목 = "3.여러가지 방정식과 부등식"
성취기준 = "[10수학01-13]미지수가 2개인 연립이차방정식을 풀 수 있다."
하위항목 = "연립방정식(일차방정식,이차방정식)D"
기본문제 총 40문제,
연립이차방정식 자동 문제 생성 알고리즘
파이썬의 sympy 모듈을 이용했습니다.
for i in range(1,문제수+1):
while True:
a, b= get_two_random_numbers()
c = random.randint(1, 5)
d = random.randint(1,3)
e = 1
symbol1 = sp.Symbol('x')
symbol2 = sp.Symbol('y')
expanded_result1 = sp.expand((symbol1 - a)*(symbol1 - b)*d - (c-e*symbol1)**2)
coco = expanded_result1.coeff(symbol1,1)
if coco == 0:
expanded_result3 = expanded_result1 - expanded_result1.coeff(symbol1,0)
expanded_result4 = -1 * expanded_result1.coeff(symbol1,0)
poly = expanded_result3 + symbol2**2
break
if coco % c == 0:
expanded_result2 = sp.expand(expanded_result1 -(coco//c)* symbol1*(c-e*symbol1))
expanded_result3 = expanded_result2 - expanded_result2.coeff(symbol1,0)
expanded_result4 = -1 * expanded_result2.coeff(symbol1,0)
poly = expanded_result3 + (coco//c)* symbol1*(symbol2) + symbol2**2
if abs(expanded_result4)<100:
break
final_result = sp.latex(poly)
first_result = sp.latex(sp.expand(symbol1 + e*symbol2)) + '=' + str(c)
텍스트넣기("연립방정식 ")
수식넣기(f"{{cases{{{{{first_result}}}&#{final_result}={expanded_result4}&}}}}")
텍스트넣기("을 푸시오.")
first_solution_x = f'x={a}'
Bson, Bmother = to_fraction(((c-a)/e))
if Bmother == 1:
first_solution_y = f'y={Bson}'
else:
first_solution_y = f'y= {{{Bson}}} over {{{Bmother}}}'
seconds_solution_x = f'x={b}'
Bson, Bmother = to_fraction(((c-b)/e))
if Bmother == 1:
seconds_solution_y = f'y={Bson}'
else:
seconds_solution_y = f'y= {{{Bson}}} over {{{Bmother}}}'
https://namgungyeon.tistory.com/46
반응형
'최소성취보장지도 > 고등학교1학년-수학' 카테고리의 다른 글
III.도형의 방정식-1.평면좌표 - 내분점, 외분점 문제 모음 (0) | 2023.06.12 |
---|---|
III.도형의 방정식-1.평면좌표 - 두 점 사이의 거리 문제 모음 (0) | 2023.06.12 |
II.방정식과부등식-2.이차방정식과 이차함수 기본문제 모음 (2) | 2023.05.09 |
II.방정식과부등식-1.복소수와 이차방정식 [기본문제] (1) | 2023.05.08 |
I.다항식 - 2.나머지정리와 인수분해 - [인수분해] 기본 문제 모음 (0) | 2023.04.10 |