반응형
# [중복 순열]
from itertools import product
from itertools import combinations_with_replacement
# 중복순열
re_per = list(product(['A', 'B','C','D','E'], repeat = 3))
re_per_num = len(re_per)
print(re_per)
print(re_per_num)
# [중복 조합]
from itertools import product
from itertools import combinations_with_replacement
# 중복조합
re_com = list(combinations_with_replacement(['A','B','C','D','E'], 3))
re_com_num = len(re_com)
print(re_com)
print(re_com_num)
# [조건부 확률]
import random
answer_Q1andQ2 = 0
answer_Q2 = 0
answer_Q1orQ2 = 0
random.seed(4)
# 함수 정의
def random_answer():
return random.choice(["A", "B"])
# 30명의 응답 결과
for i in range(30):
Q1 = random_answer()
Q2 = random_answer()
if Q2 == "A":
answer_Q2 += 1
if Q2 == "A" and Q1 == "A":
answer_Q1andQ2 += 1
if Q2 == "A" or Q1 == "A":
answer_Q1orQ2 += 1
# 조건부 확률과 독립
print( "P(Q1 and Q2 | Q2 ):", answer_Q1andQ2/answer_Q2)
print( "P(Q1 and Q2 | Q1 or Q2 ):", answer_Q1andQ2/answer_Q1orQ2)
P(Q1 and Q2 | Q2 ): 0.5
P(Q1 and Q2 | Q1 or Q2 ): 0.3181818181818182
# [확률분포 보이기]
from sympy.stats import given, density, Die
## Q1. 6개의 면이 있는 주사위 생성
Die6 = Die('Die6', 6)
Die6_dict = density(Die6).dict
print(Die6)
print(Die6_dict)
## Q2. 3 초과의 면만 나오는 조건을 가진 주사위 생성
condi = given(Die6, Die6 > 3)
condi_dict = density(condi).dict
print(condi)
print(condi_dict)
Die6
{1: 1/6, 2: 1/6, 3: 1/6, 4: 1/6, 5: 1/6, 6: 1/6}
Die6
{4: 1/3, 5: 1/3, 6: 1/3}
반응형