Skip to content

이상한 코파일럿 2 | 김성준 #267

@CodingLackey

Description

@CodingLackey
P_X = np.array([1/6] * 6)  # 정상적인 주사위
P_Y = np.array([1/21] * 6)  # 비정상적인 주사위

해당 부분에서 1/21 불공정한 주사위가 모든 경우의 수의 합이 6/21에 고정되어있습니다
따라서, 해당 부분은 맞게

P_X = np.array([1/6] * 6)  # 정상적인 주사위
P_Y = np.array([1/21, 2/21, 3/21, 4/21, 5/21, 6/21])  # 비정상적인 주사위

이런 식으로 수동으로 적어주었습니다.

import numpy as np

# 주사위의 값들
X_vals = np.array([1, 2, 3, 4, 5, 6])
Y_vals = np.array([1, 2, 3, 4, 5, 6])
print(X_vals)
# 확률 질량 함수
P_X = np.array([1/6] * 6)  # 정상적인 주사위
P_Y = np.array([1/21, 2/21, 3/21, 4/21, 5/21, 6/21])  # 비정상적인 주사위
print(P_X)
print(P_Y)
# 기대값 계산
E_X = np.sum(X_vals * P_X)
E_Y = np.sum(Y_vals * P_Y)

print("E_X의 값", E_X)
print("E_Y의값", E_Y)

# 결합 확률은 P(X=x, Y=y) = P(X=x) * P(Y=y)
P_XY = np.outer(P_X, P_Y)  # 외적을 사용하여 결합 확률 생성
E_XY = np.sum((X_vals[:, None] * Y_vals) * P_XY)  # E[XY] 계산
print("E_XY의 값", E_XY)
print("E_X의 값", E_X * E_Y)
# 공분산 계산
cov_XY = E_XY - (E_X * E_Y)

print("공분산:", cov_XY)

Image

고쳐도 이런 식으로 매우 작은 0..0000000000000003의 오차가 있어서 -3e-15으로나오는 듯 합니다.

뭔가 같은 코드를 이쁘게 정렬할려고 하다보니까 그런건지는 모르겠는데
뭔가 저런 실수를 하니까 기계 같지 않고 오히려 인간적으로 보인다고 해야할까요

정상적인 주사위의 확률 질량 함수는 6분의 1 비정상적인 주사위의 확률 질량 함수는 21분의 1 두 확률변수는 서로 독립인가? (계산하라)

라고 하셨는데 아예 정상적인 주사위와 비정상적인 주사위의 정의를 명시적으로 내리고 하면 제대로 할 지도 모르겠습니다.

정상적인 주사위 1/6 비정상적인 주사위 1/21, 2/21... 6/21의 주사위가 있다. 
둘 다 확률 질량함수이며, 서로 공분산이 0 즉, 서로 독립인지 구하라
[조건1] 
파이썬 코드로 제출한다. 
numpy 라이브러리를 사용한다.

이런 식으로요
근데 만약 이런 식으로 쓰는 글이 길어지면 사실상 자기가 증명하거나 코드를 짜는 게 더 빨라보이긴 합니다.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions