programming

python 확률 추첨기 만들기


by Kitle · 2017. 10. 29.



이번에 짜볼 프로그램은 파이썬으로 확률에 따라 결과를 만들 수 있는 프로그램입니다.

간단하게 설명을 하자면, 확률에 따라서 숫자를 부여하고 그에 따라 당첨 확률을 조절하는 프로그램입니다. 회사에서 이벤트를 하거나 누군가 추첨해줄때 차등지급이 필요할 때 다음을 참고하면 되겠습니다.


확률에 따른 추첨기 코드


# -*- coding: utf-8 -*-
import csv
import random

# 각 10%, 20%, 30%, 40% 확률인 경우

products = {'A': 10,
'B': 20,
'C': 30,
'D': 40,
}

# 총 추첨 수
count=100

productrange = []
productresult = []

for product in products:

if not productrange:
productresult.append(product)
productrange.append(products[product])
else:
productresult.append(product)
productrange.append(productrange[-1] + products[product])


for j in range(0, count):
tempresult = random.randrange(1,productrange[-1]+1)


tempcnt = 0
for i in productrange:
#print('i',i)
if tempresult <= i:
print('product is',productresult[tempcnt])
break
else:
tempcnt=tempcnt+1




코드 해설과 설명

간단하게 설명을 하자면,  여기서는 10이 10%확률, 0.2139 같은 확률도 만들때 자릿수만 같게 만들어주면 적용할 수 있다. 꼭 100을 맞출 필요도 없다.

당첨이 되면 어떤 상품을 주는 프로그램이라고 가정하고 임의로 4개의 상품을 만들었다.

확률이 10 이면 해당 당첨을 1-10 range로 만들고, 뒤에 붙여서 전체 범위를 만든다. 그중에 하나를 추첨하여 range에 해당하는 상품을 알려주면 끝...

인데 코드가 깔끔하지 못합니다. 너무나 더 쉽게 개발할 방법이 있겠지만 일단 돌아가는(-.-) 코드만 올려봅니다.