수와 연산, 문자와 식, 기하, 확률과 통계

93 days ago by nim_od

# 10학년 수학 # 수와 연산 - 집합과 명제 - 집합 # 1 import random def problem_num(): #문제에 들어갈 값 범위 랜덤 함수 global n,nlist,a,b,f,ans n=randint(5,7) nlist=list(set(randint(1,9) for i in range(n))) a,b = random.sample(nlist, 2) f(x)=2^(x-1)+2^(x-1)-2^(x-2) ans=f(n) print(ans) return ans # 답과 문제 랜덤 값 반환 def problem_answer_list(): # 답안과 결합될 숫자(랜덤화 및 중복 값 제거)를 생성하는 함수 ans =problem_num() answer_list=set() answer_list.add(ans) while len(answer_list)!=5: answers=f(randint(5,7)) if answers in answer_list: answers=2^randint(4,7) answer_list.add(answers) return list(answer_list) select_answer_list =problem_answer_list() answer=ans select_answer_list.sort() #문제 show(html("<p>$U=\\{%s\\}$일때, $\\{%s,%s\\} \\cap \\mathrm{A} \\neq \\phi$를 만족시키는 $U$의 부분집합 $\\mathrm{A}$의 개수를 구하시오.</p>"%(", ".join(map(str,nlist)),a,b))) 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> $%s$ 또는 $%s$을 원소로 갖는 $U$의 부분집합의 개수를 구하는 문제이다.<br>$%s$를 원소로 갖는 부분집합의 개수: $2^{%s}$<br>$%s$를 원소로 갖는 부분집합의 개수: $2^{%s}$<br>$%s,%s$를 모두 원소로 갖는 부분집합의 개수: $2^{%s}$<br>$\\therefore %s+%s-%s=%s$"%(a,b,a,(n-1),b,(n-1),a,b,(n-2),2^(n-1),2^(n-1),2^(n-2),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> $%s$ 또는 $%s$을 원소로 갖는 $U$의 부분집합의 개수를 구하는 문제이다.<br>$%s$를 원소로 갖는 부분집합의 개수: $2^{%s}$<br>$%s$를 원소로 갖는 부분집합의 개수: $2^{%s}$<br>$%s,%s$를 모두 원소로 갖는 부분집합의 개수: $2^{%s}$<br>$\\therefore %s+%s-%s=%s$"%(a,b,a,(n-1),b,(n-1),a,b,(n-2),2^(n-1),2^(n-1),2^(n-2),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

# 10학년 수학 # 문자와 식 - 집합과 명제 - 집합 # 2 import random def problem_num(): #문제에 들어갈 값 범위 랜덤 함수 global n,ans,d var('a') n=randint(2,6) d(a)=a^2-4*(n*a-n^2) ans=solve(d(a)==0,a)[0].rhs() return ans # 답과 문제 랜덤 값 반환 def problem_answer_list(): # 답안과 결합될 숫자(랜덤화 및 중복 값 제거)를 생성하는 함수 ans =problem_num() answer_list=set() answer_list.add(ans) while len(answer_list)!=5: answer_list.add(randint(2,9)) return list(answer_list) select_answer_list =problem_answer_list() answer=ans select_answer_list.sort() #문제 show(html("<p>이차방정식 $x^2-%s=a(x-%s)$가 중근을 갖기 위한 상수 $a$의 값은?</p>"%(n^2,n))) 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-%s=a(x-%s)$를 정리하면 $x^2-ax+%s a-%s=0$<br>중근을 가지려면 판별식 $D=0$이어야 한다.<br>$D=a^2-4(%s a-%s)\\quad \\to \\quad %s=0$<br>$\\therefore a=%s$"%(n^2,n,n,n^2,n,n^2,latex(d(a)),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-%s=a(x-%s)$를 정리하면 $x^2-ax+%s a-%s=0$<br>중근을 가지려면 판별식 $D=0$이어야 한다.<br>$D=a^2-4(%s a-%s)\\quad \\to \\quad %s=0$<br>$\\therefore a=%s$"%(n^2,n,n,n^2,n,n^2,latex(d(a)),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

# 10학년 수학 # 문자와 식 - 집합과 명제 - 집합 # 3 import random def problem_num(): #문제에 들어갈 값 범위 랜덤 함수 global n,ans,d,m var('a') n=random.choice([2,4,6,8,10]) m=randint(2,10) d(a)=n^2-4*(a+m) ans=solve(d(a)==0,a)[0].rhs() return ans # 답과 문제 랜덤 값 반환 def problem_answer_list(): # 답안과 결합될 숫자(랜덤화 및 중복 값 제거)를 생성하는 함수 ans =problem_num() print(ans) answer_list=set() answer_list.add(ans) while len(answer_list)!=5: answer_list.add(randint(-10,10)) return list(answer_list) select_answer_list =problem_answer_list() answer=ans select_answer_list.sort() #문제 show(html("<p>이차함수 $f(x)=x^2+%s x+a$의 그래프를 $y$축 방향으로 $%s$만큼 평행이동시킨 그래프가 $x$축에 접할 때, 상수 $a$의 값은?</p>"%(n,m))) 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>이차함수 $f(x)$를 $y$축 방향으로 $%s$만큼 평행이동시키면 $f(x)=x^2+%s x+a+%s$<br>중근을 가지려면 판별식 $D=0$이어야 한다.<br>$D=%s ^2-4(a+%s)\\quad \\to \\quad %s=0$<br>$\\therefore a=%s$"%(m,n,m,n,m,latex(d(a)),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>이차함수 $f(x)$를 $y$축 방향으로 $%s$만큼 평행이동시키면 $f(x)=x^2+%s x+a+%s$<br>중근을 가지려면 판별식 $D=0$이어야 한다.<br>$D=%s ^2-4(a+%s)\\quad \\to \\quad %s=0$<br>$\\therefore a=%s$"%(m,n,m,n,m,latex(d(a)),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

#확률과 통계 – 경우의 수 – 순열과 조합 (고등학교) # 6 global answer import random def problem_num(): global a,b,ans a = randint(4, 7) b = randint(2, 6) while a==b: b = randint(2, 6) ans = factorial(a-2+b)/(factorial(a-2)*factorial(b)) return ans def problem_answer_list(): ans =problem_num() answer_list=set() answer_list.add(ans) while len(answer_list)!=5: answer_list.add(random.choice([ans+randint(5,30),ans-randint(5,30)])) return list(answer_list) select_answer_list =problem_answer_list() answer=ans select_answer_list.sort() show(html("<p> 흰색 깃발 $%s$개, 파란색 깃발 $%s$개를 일렬로 모두 나열할 때, 양 끝에 흰색 깃발이 놓이는 경우의 수는? (단, 같은 색 깃발끼리는 서로 구별하지 않는다.)</p>"%(a,b))) sp = LatexExpr('\\quad') spp = LatexExpr('\\qquad') ye = LatexExpr('') for i in range(len(select_answer_list)): show("%s."%(i+1), sp, ye, latex(expand(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 answers == None: show(html("<p><span style='color:blue'>Please input your answer in the spaces above.</span></p><p>(위의 빈칸에 답을 입력하고 [Update(확인)] 버튼을 클릭하세요.)</p>")) else: if answer == answers: show(html("<p><span style='color:blue'>Correct(정답)</span></p><p>Answer(답안): <br> 양 끝에 흰색이 놓이면, 흰색 깃발 $%s$개, 파란색 깃발 $%s$개를 일렬로 나열하는 방법의 수가 된다.<br>$\\therefore \\cfrac {%s!}{%s!%s!}=%s$"%(a-2,b,a+b-2,a-2,b,answer))) else: show(html("<p><span style='color:red'>Incorrect(오답)</span></p><p>Answer(답안): <br> 양 끝에 흰색이 놓이면, 흰색 깃발 $%s$개, 파란색 깃발 $%s$개를 일렬로 나열하는 방법의 수가 된다.<br>$\\therefore \\cfrac {%s!}{%s!%s!}=%s$"%(a-2,b,a+b-2,a-2,b,answer))) 
       

Click to the left again to hide and once more to show the dynamic interactive window