1. 1번부터 45번까지 숫자 중 6가지 숫자가 선택되어야 해요
  2. 중복되면 안됨
  3. 오름차순으로 정리
  4. 10만회 돌리고 각각 번호가 나온 것을 카운팅하기
  5. 각 번호를 퍼센트 내기(소수점 두자리)
  6. 제일 높게 나온 확률 순서대로 번호 3개 추천해주기

내가 3번까지 한거

import random as r
lotto = []
num = 1
# ran = r.randint(1,45)

while num < 7:
    num = num + 1
    ran = r.randint(1,45)
    if ran not in lotto:
        lotto.append(ran)
    # if ran != lotto.append(ran):
lotto.sort()
print(lotto)

4번까지 했는데 번호가 5개가 나올 때가 발생

import random as r

for l in range(10):
    lotto = []
    num = 1

    while num < 7:
        num = num + 1
        ran = r.randint(1,45)
        if ran not in lotto:
            lotto.append(ran)
        
    lotto.sort()
    print(lotto)

box(len)으로 하면 오류 발생 줄여줌

# 풀이
import random
box = []
# ran = random.randint(1,46)
while len(box) < 6:
    ran = random.randint(1,46)
    if ran not in box:
        box.append(ran)

box.sort()
print(box,len(box))

# print(list(set(box)),len(list(set(box))))

sample을 이용해서 간단하게 나타낼 수 있음

lotto = sorted(random.sample(range(1,46),6))
print(lotto)
# 참고용1
ls = []
la = []
how = 100
for h in range(how):
    lotto = sorted(random.sample(range(1,46),6))
    la.append(lotto)
    ls = ls + lotto
# print(la, type(la))

ss = []
for n in range(1,46):
    ss.append( ls.count(n))
    print(f'숫자 {n}: 출현한 횟수는 {ls.count(n)}회 입니다.')
print(ss,sum(ss) == how * 6)
if sum(ss) == (how * 6):
    print(f'출현횟수 {how}에 대한 검증이 이상없습니다.')
# 참고용2
ls = []
la = []
how = 100
for h in range(how):
    lotto = sorted(random.sample(range(1,46),6))
    la.append(lotto)
    ls = ls + lotto
# print(la, type(la))

dic = {}
for n in range(1,46):
   dic[f'num{n}'] = ls.count(n)
    # print(f'숫자 {n}: 출현한 횟수는 {ls.count(n)}회 입니다.')
print(dic)
print(dic.values())

5000원 투입