1차원 기하 확률과 파이썬

최근에 나는 일차원 확률의 문제를 해결하는 비디오를 YouTube에 게시했습니다. 문제는 다음과 같습니다. 0과 3 사이에서 선택한 임의의 숫자가 1보다 0에 더 가까울 확률은 얼마입니까? 여기에서 비디오를 볼 수 있습니다 -


이 문제에 어떻게 접근합니까? 전통적인 확률 공식을 사용할 수 없습니다.

Probability = (Number of desired events / Number of all possible events)



왜 이 공식을 사용할 수 없는지 생각하실 수 있습니다.

그 이유는 위의 공식은 셀 수 있는 이벤트 수가 있을 때만 사용할 수 있기 때문입니다. 그러나 이 경우 원하는 이벤트의 수와 가능한 모든 이벤트의 수는 무한합니다. 이 수직선을 고려하십시오 -



3단위의 이 선분에는 무한한 숫자가 있을 수 있으므로 확률을 계산하기 위한 위의 공식은 여기서 실패합니다. 우리 앞에 남은 유일한 수단은 기하학적 확률을 사용하는 것입니다.

사건을 셀 수 없을 때 기하학적 도형으로 나타낼 수 있습니다. 독립 변수가 1개이면 길이를 사용하고 2개이면 면적을 사용하고 3개이면 부피를 사용합니다.

여기서 독립변수의 개수는 1개이므로 길이로 나타낼 수 있다.

이제 토대를 마련했으므로 문제를 해결할 때입니다. 위에 표시된 수직선에서 0과 1 사이의 정확히 중간에 있기 때문에 0.5와 같을 때 모든 숫자는 0과 1에서 등거리에 있습니다.

어떤 숫자가 0.5보다 왼쪽에 있으면 0에 가깝고 0.5에서 3까지 오른쪽에 있으면 1에 가깝습니다. 따라서 세그먼트는 0에서 0.5 단위라고 할 수 있습니다. 원하는 결과를 나타내고 0에서 3까지의 세그먼트는 가능한 모든 결과를 나타냅니다. 확률 공식은 이제 -로 줄어듭니다.

Probability = (length of the desired line segment/length of the entire possible line segment)



값을 입력하면

0.6/3=1/6=0.1666....
0.6/3 = 1/6 = 0.1666....
0.6/3=1/6=0.1666....

글쎄, 그게 이론이야 - 맞아! Python을 사용하여 테스트할 시간입니다.

암호



첫 번째 단계에서는 난수를 생성해야 하므로 random 모듈에서 random 함수를 가져옵니다.

from random import random

둘째, 0과 3 사이의 임의의 숫자를 생성하고 0 또는 1로 근접성 검사를 수행하는 함수를 만듭니다.

def one_trial():
    # Code goes here
    # and here

이 기능을 one_trial이라고 합니다. 이 함수 내에서 이전에 가져온 random 함수를 사용하여 난수 x를 생성합니다. 이 함수는 0과 1 사이의 값을 생성하므로 0과 3 사이의 난수를 생성하도록 3을 곱해야 합니다.

def one_trial():
    x = random() * 3

다음으로 x가 0.5보다 작은지 확인하여 이 숫자 x가 0 또는 1에 가까운지 테스트합니다. 그렇다면 1을 반환하고, 그렇지 않으면 0을 반환합니다.

def one_trial():
    x = random() * 3

    if x <=0.5:
        return 1
    return 0

이것이 이 기능의 전부입니다.

이제 우리는 이 함수를 여러 번 실행하고 결과가 수학을 사용하여 결정한 것과 동일한지 확인하기만 하면 됩니다.

10,000회 반복을 확인합시다.

n = 10000

다음으로 0.5 미만의 숫자인 원하는 결과를 얻은 횟수를 추적하는 '성공' 변수를 만듭니다. 이 변수를 0으로 초기화합니다.

success = 0

다음으로, 이 실험을 N 번 수행하고 모든 반복에서 각 시행 함수의 결과가 성공 변수에 추가되는 for 루프를 생성합니다. 즉, 성공하면 1, 성공하지 못하면 0입니다.

for _ in range(n):
    success += one_trial()
for 루프가 종료된 후 확률의 형태로 결과를 인쇄할 시간입니다. 즉 성공을 반복으로 나눈 값입니다.

print(f"The probability is {success/n}")

이 기능을 실행할 시간입니다. 예상 답변은 0.1666임을 기억하십시오...

10000회 반복 시 0.1761, 100만 회 반복 시 0.16623을 얻습니다.

따라서 기하학적 확률에 대한 우리의 계산은 실제로 정확합니다. 이 기사를 즐겼기를 바랍니다.

감사합니다. 다음 편에서 뵙겠습니다.

좋은 웹페이지 즐겨찾기