TIL

[TIL] 7일차_Conditional_probability

Molybdenum_j 2023. 3. 3. 13:25

▶ Conditional Probability : 조건부 확률

  • 사건 A가 발생했다는 조건에 사건 B가 발생할 확률
  • 사건 A가 발생했을때 사건 B의 조건부 확률
  • P(B|A)=P(B∩A)P(A)
  • 특징
    • P(B|A)≠P(A|B)
    • P(A∩B)=P(B)P(A|B)=P(A)P(B|A)
    • P(A|B)=P(A∩B)P(B)=P(A)P(B|A)P(B)
    • 사건 B가 발생했을때 사건 A가 발생할 확률을 사건 A가 발생했을때 사건 B가 발생할 확률로 알아낼수 있다.
    • P(B|A) 로 P(A|B) 를 알아낼수 있다.

Quiz 1. 년도를 입력받아 윤년이면 True, 아니면 False 출력하는 코드 작성

  • 4년에 한 번씩 윤년 O
  • 100년에 한 번 씩 윤년 X
  • 400년에 한 번씩 윤년 O

year = 2008 # True

year = 1900 # False

year = 2000 # True

 

year = int(input('년도를 입력하세요 : '))
if year % 4 == 0 and year % 400 == 0 or year % 100 != 0:
    print('True')
else:
    print('False')
year = 2000
(year % 4 == 0) and (year % 100 != 0) or (year % 400 == 0)

 

Quiz 2. fizzbuzz

  • 3의 배수 : fizz, 5의 배수 : buzz, 3과 5의 배수 : fizzbuzz 출력
  • 위의 조건에 해당하지 않으면 data출력
data = 28
if data % 3 == 0 and data % 5 == 0:
    print('fizzbuzz')
elif data % 3 == 0:
    print('fizz')
elif data % 5 == 0:
    print('buzz')
else:
    print(data)
data = 13
if data % 3 == 0:
    print('fizz', end='')
if data % 5 == 0:
    print('buzz')
if not (data % 3 == 0) or (data % 5 == 0):
    print(data)

 

Quiz 3. left shift

  • data에서 몇 번 left shift 해야하는가
data = 'abcde'
shift = 7 # deabc
while shift:
    shift -= 1
    data = data[1:] + data[0]
data
data = 'abcde'
shift = 7 # deabc
shift = shift % len(data)
while shift:
    shift -= 1
    data = data[1:] + data[0]
data
data = 'abcde'
shift = 7
shift = shift % len(data)
for _ in range(shift):
    data = data[1:] + data[0]
data