연구과제_김수민_06

56 days ago by suminkim1317

#1 n=5 #부모를 한 묶음으로 본 후, 원형 탁자에 둘러앉는 사람의 수 k=factorial(n-1) #n명이 원형 탁자에 앉는 경우의 수 l=factorial(2) #부모가 서로 자리를 바꾸어 앉는 경우의 수 print("따라서 구하는 모든 경우의 수는 %d 이다." %(k*l)) #모든 경우의 수 = (n명이 원형 탁자에 앉는 경우의 수)x(부모가 서로 자리를 바꾸어 앉는 경우의 수) 
       
따라서 구하는 모든 경우의 수는 48 이다.
따라서 구하는 모든 경우의 수는 48 이다.
#2 n=5 #서로 다른 색을 가진 풍선 개수 r=2 #선택할 풍선 개수 print("모든 경우의 수는 %d이다." %(binomial(n+r-1,r))) #모든 경우의 수 
       
모든 경우의 수는 15이다.
모든 경우의 수는 15이다.
#3 k=4 #문자 '가'의 개수 l=2 #문자 '나'의 개수 n=k+l #모든 문자의 개수 print("모든 경우의 수는 %d이다." %(binomial(n,k))) #모든 경우의 수 
       
모든 경우의 수는 15이다.
모든 경우의 수는 15이다.
#4 n=3 #상자 개수 r=5 #공 개수 print("모든 경우의 수는 %d이다." %(binomial(n+r-1,r))) #모든 경우의 수 
       
모든 경우의 수는 21이다.
모든 경우의 수는 21이다.
#5 k=4 #숫자 개수 (0,1,2,3) l=k-1 #천의 자릿수에 올 수 있는 숫자 개수(0이 제외 됨) m=k #나머지 백,십,일의 자릿수에 올 수 있는 숫자 개수 print("따라서 구하는 네 자리 자연수의 개수는 %d이다." %(l*m^3)) #모든 경우의 수 = 각각의 자릿수에 올 수 있는 숫자 개수의 곱 
       
따라서 구하는 네 자리 자연수의 개수는 192이다.
따라서 구하는 네 자리 자연수의 개수는 192이다.
#6 n=6 r=3 print("모든 경우의 수는 %d이다." %(binomial(n+r-1,r))) #모든 경우의 수 
       
모든 경우의 수는 56이다.
모든 경우의 수는 56이다.
#7 r=3 k=8 n=8^(1/3) #n^r=8 print("등식을 만족시키는 자연수 n의 값은 %d이다." %n) 
       
등식을 만족시키는 자연수 n의 값은 2이다.
등식을 만족시키는 자연수 n의 값은 2이다.
#8 n=6 a=2 #a의 지수 b=4 #b의 지수 print("(a+b)^6 전개식에서 a^2*b^2의 계수는 %d이다." %(binomial(n,a))) #모든 경우의 수 
       
(a+b)^6 전개식에서 a^2*b^2의 계수는 15이다.
(a+b)^6 전개식에서 a^2*b^2의 계수는 15이다.
#9 n=4 k=-2 def get_coefficient(n,a): return binomial(n,a)*k^(n-a) print("{}x^4 {}x^3 +{}x^2 {}x +{}".format(get_coefficient(n,4),get_coefficient(n,3),get_coefficient(n,2),get_coefficient(n,1),get_coefficient(n,0))) 
       
1x^4 -8x^3 +24x^2 -32x +16
1x^4 -8x^3 +24x^2 -32x +16
#10 var('n') assume(n>0) r=2 print("자연수 n의 값은 다음과 같다.") solve(binomial(n,r)==45,n) 
       
자연수 n의 값은 다음과 같다.
[n == 10]
자연수 n의 값은 다음과 같다.
[n == 10]
#11 coin1=['h','t'] #h: 앞 t:뒤 coin2=['h','t'] coin_list=[] for x in coin1: #첫번째 동전 시행 for y in coin2: #두번째 동전 시행 coin_list.append(x+y) #표본공간 print("표본공간은 다음과 같다.") print(coin_list) 
       
표본공간은 다음과 같다.
['hh', 'ht', 'th', 'tt']
표본공간은 다음과 같다.
['hh', 'ht', 'th', 'tt']
#12 U = [1,2,3,4,5,6,7,8] #전체 사건 A = [1,3,5,7] #A 사건 B = [4,8] #B 사건 list(set(U)-set(A+B)) #전체사건에서 A,B사건의 합(각각의 리스트를 더한 후 set()을 통해 중복 제거)을 뺌 
       
[2, 6]
[2, 6]
#13 S=binomial(5,2) #표본공간 A=binomial(3,1)*binomial(2,1) #사건 A print("사건 A가 발생할 확률은 %s이다." %(A/S)) #확률 P = (사건 A)/(표본공간) 
       
사건 A가 발생할 확률은 3/5이다.
사건 A가 발생할 확률은 3/5이다.
#14 #여사건 S=binomial(6,3) #표본공간 A=binomial(4,3) #A 고등학교 학생이 포함되지 않는 경우의 수 P=A/S #A 고등학교 학생이 전혀 포함되지 않을 확률 print("A고등학교 학생이 적어도 1명 포함될 확률은 %s이다." %(1-P)) #A 고등학교 학생이 적어도 한 명 포함될 확률 = 1 - (A 고등학교 학생이 전혀 포함되지 않을 확률) 
       
A고등학교 학생이 적어도 1명 포함될 확률은 4/5이다.
A고등학교 학생이 적어도 1명 포함될 확률은 4/5이다.
#15 S=[1..40] A=set([x for x in S if x%3==0]) #카드에 적힌 수가 3의 배수인 경우 B=set([x for x in S if x%4==0]) #카드에 적힌 수가 4의 배수인 경우 AandB = A.intersection(B) AUB = (len(A)+len(B)-len(AandB)) #확률 p = (3 또는 4의 배수일 모든 경우의 수) / (표본공간) AUB = AUB/40 print("카드에 적힌 수가 3의 배수 또는 4의 배수일 확률은 %s이다." %(AUB)) 
       
카드에 적힌 수가 3의 배수 또는 4의 배수일 확률은 1/2이다.
카드에 적힌 수가 3의 배수 또는 4의 배수일 확률은 1/2이다.
#16 r(k)=25*k #앞면이 나오는 횟수 r_n n(k)=50*k #동전을 던진 횟수 n print("동전 한 개를 던질 때 앞면이 나올 수학적 확률은 %s이다." %(limit(r(k)/n(k),k=infinity))) 
       
동전 한 개를 던질 때 앞면이 나올 수학적 확률은 1/2이다.
동전 한 개를 던질 때 앞면이 나올 수학적 확률은 1/2이다.
#17 almond=10 #아몬드 사탕 개수 walnet=6 #호두 사탕 개수 A=walnet/(almond+walnet) #정희가 꺼낸 사탕이 호두 사탕일 확률 B_A=(walnet-1)/(almond+walnet-1) #정희가 호두맛 사탕을 꺼낸 후 현성이 호두 맛 사탕을 꺼낼 확률 print("두 사람 모두 호두맛 사탕을 꺼낼 확률은 %s이다." %(A*B_A)) 
       
두 사람 모두 호두맛 사탕을 꺼낼 확률은 1/8이다.
두 사람 모두 호두맛 사탕을 꺼낼 확률은 1/8이다.
#18 A=0.4*0.01 #A 공장에서 생산된 부품이 불량품일 확률 B=0.6*0.02 #B 공장에서 생산된 부품이 불량품일 확률 print("택한 부품이 불량품일 확률은 %0.3f이다."%(A+B)) #택한 부품이 불량품일 확률 
       
택한 부품이 불량품일 확률은 0.016이다.
택한 부품이 불량품일 확률은 0.016이다.
#19 P=4/5 #표적을 맞출 확률 print("이 선수가 3발을 쏘았을 때, 표적을 한 번도 맞히지 못할 확률은 %s이다." %((1-P)^3)) #여사건: 표적을 맞추지 못할 확률 = 1 - 표적을 맞출 확률 
       
이 선수가 3발을 쏘았을 때, 표적을 한 번도 맞히지 못할 확률은 1/125이다.
이 선수가 3발을 쏘았을 때, 표적을 한 번도 맞히지 못할 확률은 1/125이다.
#20 P=35/36 #주사위를 한 번 던져 (6,6)이 나오지 않을 확률 print("서로 다른 2개의 주사위를 24번 던져 적어도 1번 (6,6)이 나올 확률은 %0.3f이다."%(1-(P)^24)) #여사건 
       
서로 다른 2개의 주사위를 24번 던져 적어도 1번 (6,6)이 나올 확률은 0.491이다.
서로 다른 2개의 주사위를 24번 던져 적어도 1번 (6,6)이 나올 확률은 0.491이다.
#21 p1=0.6*0.6 #목요일에 비가 오고, 금요일에 비가 올 확률 p2=0.4*0.3 #목요일에 비가 오지 않고, 금요일에 비가 올 확률 print("장마철의 어느 수요일에 비가 왔을 때, 그 주 금요일에도 비가 올 확률은 %0.2f이다."%(p1+p2)) 
       
장마철의 어느 수요일에 비가 왔을 때, 그 주 금요일에도 비가 올 확률은 0.48이다.
장마철의 어느 수요일에 비가 왔을 때, 그 주 금요일에도 비가 올 확률은 0.48이다.
#22 table => 더 나은 방법을 생각해보아야 할 듯함 def pmf(n): return binomial(3,n)*binomial(4,3-n)/binomial(7,3) #확률질량함수 공식 x_list=[(str(x),str(pmf(x))) for x in [0..3]] #x와 확률분포 쌍 header=["x", "P(X=x)"] footer=["sum","1"] #합계 x_list.append(footer) html.table(x_list, header=header) #table로 나타냄 
       
x P(X=x)
0 4/35
1 18/35
2 12/35
3 1/35
sum 1
x P(X=x)
0 4/35
1 18/35
2 12/35
3 1/35
sum 1
#23 p=1/12 #검은 공을 아예 꺼내지 않을 확률 print("검은 공을 적어도 1개 이상 꺼낼 확률은 %s이다." %(1-p)) #여사건: 검은 공을 적어도 하나 이상 꺼낼 확률 = 1 - (검은 공을 아예 꺼내지 않을 확률) 
       
검은 공을 적어도 1개 이상 꺼낼 확률은 11/12이다.
검은 공을 적어도 1개 이상 꺼낼 확률은 11/12이다.
#24 var('k') f(x)=k*x #확률밀도함수 g(m,n)=integrate(f(x),(x,n,m)) #확률밀도함수와 x축, 직선 x=n,x=m으로 둘러싸인 도형의 넓이 0<n<m print(solve(g(0,3)==1,k)[0]) #k 값 f(x)=f(x).subs(k==2/9) g(m,n)=integrate(f(x),(x,n,m)) #k==2/9대입 print(g(3,2)) #p(2<=x<=3) plot(f(x),0, 3) 
       
k == (-2/9)
5/9
k == (-2/9)
5/9
#25 p_list=[0.4,0.3,0.2,0.1] #확률분포 mean=0 for x,p in enumerate(p_list): mean+=x*p #print("%0.2f"%(mean)) #평균 variance=0 for x,p in enumerate(p_list): variance+=(x-mean)^2*p print("V(X) = %d"%(variance)) #분산 print("o(X) = %d"%(sqrt(variance))) #표준편차 
       
V(X) = 1
o(X) = 1
V(X) = 1
o(X) = 1
#26 f(x)=1/288*x*(12-x) #연속확률변수 x의 확률밀도함수 print("기다리는 시간이 3분 이내일 확률은 %s이다." %(integral(f(x),0,3))) #0<=x<=3에서의 확률 
       
기다리는 시간이 3분 이내일 확률은 5/32이다.
기다리는 시간이 3분 이내일 확률은 5/32이다.
#27 p=1/6 mean=0 for x in [1..6]: mean+=x*p print("X의 기댓값은 %0.1f이다."%(mean)) #평균 
       
X의 기댓값은 3.5이다.
X의 기댓값은 3.5이다.
#28 p=1/4 mean=0 x_list=[1,3,5,7] for x in x_list: mean+=x*p #print("%d"%(mean)) #평균 variance=0 for x in x_list: variance+=(x-mean)^2*p print("V(X) = %d"%(variance)) #분산 print("o(X) = %s" %(sqrt(variance))) #표준편차 
       
V(X) = 5
o(X) = sqrt(5)
V(X) = 5
o(X) = sqrt(5)
#29 a=3;b=2 #Y=3X+2 p_list=[2/5,3/10,1/5,1/10] #확률분포 mean=0 for x,p in enumerate(p_list): mean+=(2*(x+1))*p print("E(X) = %d"%(a*mean+b)) #평균 = a*mean+b variance=0 for x,p in enumerate(p_list): variance+=((2*(x+1))-mean)^2*p print("V(X) = %d"%(a^2*variance)) #분산 = a^2*variance print("o(X) = %d"%(a*sqrt(variance))) #표준편차 = a*deviance 
       
E(X) = 14
V(X) = 36
o(X) = 6
E(X) = 14
V(X) = 36
o(X) = 6
#30 p=1/6 x_list=[1..6] mean=0 for x in x_list: mean+=x*p print("E(X) = %s"%(mean)) #평균 x_list=[(x,1/6) for x in [1..6]] #x와 확률분포 쌍 header=["$x$", "$P(X=x)$"] footer=["$합계$",1] x_list.append(footer) html.table(x_list,header=header) #table로 나타냄 
       
E(X) = 7/2

E(X) = 7/2

#31 var('m,a') #m=평균, a=표준편차 mean=(m-m)/a #0 #표준정규분포에서의 평균 print("E(X) = %d" %(mean)) variance=a^2/a^2 #1 표준정규분포에서의 분산 print("V(X) = %d" %(variance)) 
       
E(X) = 0
V(X) = 1
E(X) = 0
V(X) = 1
#32(30) n=18 p=1/3 print("E(X) = %d" %(n*p)) #평균 print("V(X) = %d" %(n*p*(1-p))) #분산 print("o(X) = %d" %(sqrt(n*p*(1-p)))) #표준편차 
       
E(X) = 6
V(X) = 4
o(X) = 2
E(X) = 6
V(X) = 4
o(X) = 2
#33(31) var('x') mean=1 #평균 variance=4 #분산 deviation=sqrt(variance) #표준편차 print("E(X)=%d, V(X)=%d, o(X)=%d" %(mean,variance,deviation)) P(x)=(x-mean)/deviation #확률변수 z에 대한 확률 print("확률 범위는 P(%d<=Z<=%d)이다." %(P(1),P(5))) #확률 범위 print("P(1<=X<=5) = %0.4f"%(0.4772)) 
       
E(X)=1, V(X)=4, o(X)=2
확률 범위는 P(0<=Z<=2)이다.
P(1<=X<=5) = 0.4772
E(X)=1, V(X)=4, o(X)=2
확률 범위는 P(0<=Z<=2)이다.
P(1<=X<=5) = 0.4772
#34(32) mean=15 #평균 variance=4/25 #표준편차 deviation=sqrt(variance) #분산 print("표본평균의 평균은 %d만 원이다." %(mean)) print("표본평균의 표준편차는 %s만 원이다." %(deviation)) 
       
표본평균의 평균은 15만 원이다.
표본평균의 표준편차는 2/5만 원이다.
표본평균의 평균은 15만 원이다.
표본평균의 표준편차는 2/5만 원이다.
#35(33) mean = 2.73 #평균 deviation = 0.03 #표준편차 variance = pow(deviation,2) #분산 p_variance = variance/9 P(x) = (x-mean)/0.01 print("P(%d <= Z <= %d)" %(P(mean-deviation),P(mean+deviation))) #확률 변수가 표준정규분포 N(0,1)을 따르므로 구하는 확률이다. print("2 * P(0<=Z<=%d)" %(P(mean+deviation))) print("제품의 길이의 평균이 2.7cm이상 2.76cm이하일 확률은 %.4f이다." %(2*0.4987)) 
       
P(-3 <= Z <= 3)
2 * P(0<=Z<=3)
제품의 길이의 평균이 2.7cm이상 2.76cm이하일 확률은 0.9974이다.
P(-3 <= Z <= 3)
2 * P(0<=Z<=3)
제품의 길이의 평균이 2.7cm이상 2.76cm이하일 확률은 0.9974이다.
#36(34) n = 100 #표본의 크기 x = 2000 #표본평균의 실제 관측값 diviation = 100 #모표준편차 trust1 = x-(1.96*(diviation/sqrt(diviation))) #열량의 평균 m에 대한 신뢰도 95%의 신뢰구간 구하기 trust2 = x+(1.96*(diviation/sqrt(diviation))) print("%.1f <= m <= %.1f" %(trust1, trust2)) print("즉, %.1fkcal 이상 %.1fkcal 이하인 범위에 이 가게에서 만든 파지 한 판의 열량의 평균이 포함되어 있다는 추정의 신뢰도가 95%%이다." %(trust1, trust2)) 
       
1980.4 <= m <= 2019.6
즉, 1980.4kcal 이상 2019.6kcal 이하인 범위에 이 가게에서 만든 파지 한 판의 열량의 평균이 포함되어 있다는
추정의 신뢰도가 95%이다.
1980.4 <= m <= 2019.6
즉, 1980.4kcal 이상 2019.6kcal 이하인 범위에 이 가게에서 만든 파지 한 판의 열량의 평균이 포함되어 있다는 추정의 신뢰도가 95%이다.
#37(35) var('n') mean = 30 #모평균 variance = 4 #모분산 size = n #모집단의 크기 print("%s <= %.2f" %((sqrt(variance)/sqrt(size)), 0.01)) #표뵨평균의 표준편차가 0.01 이하가 되기 위한 n의 최솟값 구하기 sol = str(solve((sqrt(4)/sqrt(n))==0.01,n)[0]) #식 간단화하기 sol = int(sol[5:len(sol)-1]) print("n >= %d" %sol) 
       
2/sqrt(n) <= 0.01
n >= 4000
2/sqrt(n) <= 0.01
n >= 4000
#38(36) var('n') N = [17, 16, n] #정규분포 print("P(16.6 <= X <= 17.4) >= 0.95") #식 print("P(%s <= Z <= %s) >= 0.95" %(-sqrt(N[2])/10, sqrt(N[2])/10)) print("2 * P(0 <= Z <= %s) >= 0.95" %(sqrt(N[2])/10)) print("P(0 <= Z <= %s) >= 0.475" %(sqrt(N[2])/10)) print("이때 P(0<=Z<=1.96)>=0.475이므로 %s>=1.96이다." %(sqrt(N[2])/10)) solve(1/10*sqrt(n)==1.96, n) #n의 최솟값 구하기 => n>=9604/25 n = 9604/25 print("즉, n>=%.2f이므로, 따라서 n의 최솟값은 %d이다." %(n, ceil(n))) 
       
P(16.6 <= X <= 17.4) >= 0.95
P(-1/10*sqrt(n) <= Z <= 1/10*sqrt(n)) >= 0.95
2 * P(0 <= Z <= 1/10*sqrt(n)) >= 0.95
P(0 <= Z <= 1/10*sqrt(n)) >= 0.475
이때 P(0<=Z<=1.96)>=0.475이므로 1/10*sqrt(n)>=1.96이다.
즉, n>=384.16이므로, 따라서 n의 최솟값은 385이다.
P(16.6 <= X <= 17.4) >= 0.95
P(-1/10*sqrt(n) <= Z <= 1/10*sqrt(n)) >= 0.95
2 * P(0 <= Z <= 1/10*sqrt(n)) >= 0.95
P(0 <= Z <= 1/10*sqrt(n)) >= 0.475
이때 P(0<=Z<=1.96)>=0.475이므로 1/10*sqrt(n)>=1.96이다.
즉, n>=384.16이므로, 따라서 n의 최솟값은 385이다.
#39(37) mean = 5 #평균 variance = 225/4 #분산 size = 225 # 모집단의 크기 vari = (225/4) / size print("P(Z>=%s) = P(X>=6)" %((6-mean)/sqrt(vari))) #표본평균 구하기 print("P(Z>=2)=0.0228") 
       
P(Z>=2) = P(X>=6)
P(Z>=2)=0.0228
P(Z>=2) = P(X>=6)
P(Z>=2)=0.0228
#40(38) var('X, Z') B = [100,1/2] #이항분포 mean = B[0]*B[1] #평균 variance = B[0]*B[1]*(1-B[1]) #분산 f(x) = 4*X-2*(100-X) # 뒷면이 나오는 횟수는 100-X이므로 게임의 점수 print("게임의 점수를 구하는 식은 %s이다." %(f(x))) print("동전 1개를 100번 던진 후, 최종 점수가 190점 이상이 될 확률은 다음과 같다.") print("P(%s >= 190)" %(f(x))) # 최종 점수가 190점 이상이 될 확률 solve(f(x) == 190, X) #식 풀이하기 print("P(Z >= %s)" %((65-mean)/sqrt(variance))) #정규분포를 활용하여 확률 구하기 print("즉, 구하고자 하는 확률은 %.4f이다." %(0.0013)) 
       
게임의 점수를 구하는 식은 6*X - 200이다.
동전 1개를 100번 던진 후, 최종 점수가 190점 이상이 될 확률은 다음과 같다.
P(6*X - 200 >= 190)
P(Z >= 3)
즉, 구하고자 하는 확률은 0.0013이다.
게임의 점수를 구하는 식은 6*X - 200이다.
동전 1개를 100번 던진 후, 최종 점수가 190점 이상이 될 확률은 다음과 같다.
P(6*X - 200 >= 190)
P(Z >= 3)
즉, 구하고자 하는 확률은 0.0013이다.
#41(39) var('m, o, n') mean = m # 평균 variance = pow(o,2)/n #분산 diviation = o/sqrt(n) #표준편차 print("E(X)=%s, V(X)=%s, o(X)=%s이다." %(mean, variance, diviation)) print("n에 관계없이 E(X)는 일정하고, n이 커질수록 V(X), o(X)는 작아진다.") 
       
E(X)=m, V(X)=o^2/n, o(X)=o/sqrt(n)이다.
n에 관계없이 E(X)는 일정하고, n이 커질수록 V(X), o(X)는 작아진다.
E(X)=m, V(X)=o^2/n, o(X)=o/sqrt(n)이다.
n에 관계없이 E(X)는 일정하고, n이 커질수록 V(X), o(X)는 작아진다.
#42(40) n = 100 #학교 학생 임의추출 수 x = 100 #스마트폰 사용 시간 평균 o = 25 #모표준편차 trust1 = n-2.58*(o/sqrt(x)) #평균 m에 대한 신뢰도 99%의 신뢰구간 구하기 trust2 = n+2.58*(o/sqrt(x)) print("이 학교 학생들의 주말 동안의 스마트폰 사용 시간의 평균 m에 대한 신뢰도 99%의 신뢰구간은 다음과 같다.") print("%.2f <= m <= %.2f (단위: 분)" %(trust1, trust2)) 
       
이 학교 학생들의 주말 동안의 스마트폰 사용 시간의 평균 m에 대한 신뢰도 99%의 신뢰구간은 다음과 같다.
93.55 <= m <= 106.45 (단위: 분)
이 학교 학생들의 주말 동안의 스마트폰 사용 시간의 평균 m에 대한 신뢰도 99%의 신뢰구간은 다음과 같다.
93.55 <= m <= 106.45 (단위: 분)