알고리즘

[Python] 주사위 던지기

LeeSeunghyuk 2021. 1. 5. 10:07
반응형

안녕하세요.

 

이승혁 입니다.

 

지난 포스팅에서 동전의 앞면, 뒷면에 대한 확률을 확인해 봤습니다.

이전 게시글을 읽고 오시면 생략한 부분들에 대한 설명이 나와있습니다.

 

2021/01/04 - [알고리즘] - [Python&SQL] 동전의 앞면이 나올 확률은 ? Random

 

[Python&SQL] 동전의 앞면이 나올 확률은 ? Random

동전을 던졌을 때 앞면이 나올 확률은 어떻게 될까요? 숫자를 사용해서 확률을 구해보겠습니다. 0 : 동전의 뒷면 1 : 동전의 앞면 0 , 1 중 랜덤으로 하나를 선택할 확률은 동전을 던졌을 때 앞면과

lsh-story.tistory.com

오늘은 주사위를 사용해 확률을 확인해 보도록 하겠습니다!

 

# 주사위 1회 던지기

 

import random
print('주사위를 던집니다.')
print('결과 : ',random.randint(1,6))

동전과 마찬가지로 random 모듈을 사용합니다.

randint 함수를 사용해 1 ~ 6 사이의 수를 랜덤으로 선택합니다.

 

# 주사위 100회 던지기

 

import random
print('주사위를 100회 던집니다.')

result=[0]*6
for i in range(100):
    dice=random.randint(1,6)
    result[dice-1] += 1
    
print('결과 : ',end='')
for idx,i in enumerate(result):
    print(idx,'-',i,'번,',end='  ')

 

 

## 주사위 눈 확률 시각화

 

import random
import matplotlib.pyplot as plt
print('주사위를 100000회 던집니다.')

result=[0]*6

for i in range(100000):
    dice=random.randint(1,6)
    result[dice-1] += 1
    
for i in range(6):
    result[i]/=100000

    
plt.bar(range(1,7),result)
plt.ylim(0,0.3)
plt.ylabel('prob')
plt.xlabel('dice number')
plt.show()
plt.pie(result,autopct='%2.2f%%',labels=range(1,7))
plt.show()

 

모든 확률이 비슷하게 나타납니다.

 

# 주사위 두 개 던져 합 확률 구하기

 

import random
import matplotlib.pyplot as plt
print('주사위 2개를 100000회 던집니다.') 

result=[0]*13 ## 0 1 2 3 4 5 6 7 8 9 10 11 12


for i in range(100000):
    dice1=random.randint(1,6)
    dice2=random.randint(1,6)
    result[dice1+dice2] += 1
    
for i in range(13):
    result[i]/=100000

    
plt.bar(range(2,13),result[2:],tick_label=range(2,13)) # 2 ~ 12
plt.ylim(0,0.3)
plt.ylabel('prob')
plt.xlabel('2 dice sum')
plt.show()

 

주사위 2개를 10만 번 던져 합을 저장합니다.

시각화를 통해 결과를 확인해 보았습니다.

 

쉽고 재미있게 데이터를 생성하고, 시각화 하는 연습을 진행해 봤습니다.

 

읽어주셔서 감사합니다.

반응형