파이썬 로또 프로그램 만들기

 안녕하세요, 이번 포스팅을 할 내용은 파이썬 로또 프로그램 만들기 내용입니다. 

대한민국에서 로또는 사람들이 그냥 하나의 쉼이라고 생각할 정도로 대중화되어 있는 복권 게임 중에 하나입니다. 

파이썬을 이용하여 로또 프로그램도 만들어 보고 기존에 당첨되었던 로또 번호를 통계적으로 분석하여 로또 당첨 확률을 높이는 프로그램도 구현해 보도록 하겠습니다. 

파이썬 로또 프로그램

로또는 많은 사람들이 즐기는 복권 게임 중 하나입니다.

파이썬을 이용하여 로또 번호를 생성하거나, 기존에 당첨되었던 로또 번호의 통계를 분석하여 로또 당첨확률을 높이는데 도움을 주는 프로그램을 만들어 보도록 하겠습니다.

일단 파이썬을 어떤 개념으로 구성할지에 대해서 설명 드리도록 하겠습니다.

먼저 프로그램을 만들기 위해서는 초안을 짜야 합니다.

그럼 먼저 프로그램 구성을 위해서 로또 복권 진행 방법에 대해서 설명드리도록 하겠습니다. 

일단 매주 추첨되는 로또는 구매하시는 분들이 1번에서 45번 중에 6개의 번호를 선택하고 해당 6자리 숫자와 당첨번호와 맞추는 방식입니다. 

번호가 모두 일치할 경우 1등에 당첨되며, 일치하는 번호의 개수에 따라 2등부터 6등까지의 등수가 결정됩니다.

그렇기 때문에 로또 번호 6개 자리를 랜덤으로 파이썬 프로그램을 통해서 추출할 예정입니다. 

 

파이썬 로또 생성기 프로그램 코드

: 1에서 45 숫자 중에 6자리 숫자를 무작위로 출력하기 위해서 파이썬의 표준 라이브러리 중 ‘random’ 모듈을 활용하였습니다.

‘random’ 모듈 관련 자세한 사항은 아래 포스팅을 참조하시면 코드 이해하시는데 도움이 되실 겁니다.

▶ 파이썬 ‘random’ 모듈 알아보러 가기

 이렇게  ‘random’ 모듈을 이용하게 되면 간단하게 로또 번호를 생성할 수 있는 프로그램을 구현할 수 있습니다.

참고로 ‘random’ 모듈에 포함되어 있는 ‘random.sample’ 함수는 지정된 범위의 숫자 중에서 무작위로 원하는 개수의 숫자를 추출해 줍니다.

import random # random 모듈을 import 함

numbers = range(1, 46) # 1~45 숫자라는 범위를 지정
lotto = random.sample(numbers, 6) # range 범위에 있는 숫자를 무작위 추출
print(sorted(lotto))

위 코드를 실행하면 1부터 45까지의 숫자 중 랜덤 한 6개의 숫자를 출력해 줍니다.

저는 돌려본 결과 아래와 같은 결과를 추출할 수 있었습니다. 

파이썬-로또-프로그램-만들기-로또번호-출력결과
파이썬-로또-프로그램-만들기-로또번호-출력결과

 

▶파이썬 정렬 sorted 함수 사용법 예제코드

 

로또 번호 통계 분석 프로그램 만들기

그럼 위에서 구현한 프로그램은 무작위로 1에서 45 사이에 있는 숫자 6개를 출력하는 것이었습니다. 

 무작위로 출력하기 때문에 그때마다 상이하여 연관성은 조금 떨어지기 때문에 로또 당첨 확률을 높이기 위해서 기존에 당첨 번호를 통계로 내서 당첨 확률이 높은 번호를 출력하는 프로그램을 짜보도록 하겠습니다. 

 즉 해당 프로그램을 통해서 지난 로또 당첨 번호들을 분석하여 가장 많이 나온 번호, 가장 적게 나온 번호, 연속적으로 나온 번호 등의 통계를 확인해 볼 수 있습니다.

 프로그램 구현을 위해서 파이썬 ‘collections’ 모듈을 활용하여 번호의 출현 빈도를 분석해 보도록 하겠습니다.

파이썬 ‘collections’ 모듈 자세한 사항은 아래 포스팅을 참조하시면 코드 이해하시는데 도움이 되실 겁니다. 

▶ 파이썬 ‘collections’ 모듈 알아보러 가기

from collections import Counter

past_lotto_numbers = [
    # 지난 로또 번호들을 리스트 형태로 추가
    [1, 3, 5, 7, 9, 11], [1, 2, 6, 8, 10, 11], [2, 6, 13, 15, 17, 45], [13, 15, 17, 1, 3, 45]
    # ... 다른 번호들
]

all_numbers = []
for numbers in past_lotto_numbers:
    all_numbers.extend(numbers)

counter = Counter(all_numbers)
most_common = counter.most_common(6)
least_common = counter.most_common()[:-6-1:-1]

 위에 프로그램을 구현하게 되면 지난 로또 번호들 중에서 가장 많이 나온 6개의 번호와 가장 적게 나온 6개의 번호를 출력해 주는 것을 확인할 수 있습니다. 

 제가 돌려본 결과는 아래와 같습니다.

파이썬-로또-프로그램-만들기-로또번호-통계-출력결과
파이썬-로또-프로그램-만들기-로또번호-통계-출력결과

 

해당 결과를 보면 가장 많이 나온 숫자는 1이며 횟수는 총 3번이 나온 것입니다. 

 그다음으로 많이 나온 숫자는 3이고 횟수는 총 2번입니다. 

그리고 가장 적게 나온 번호는 각자 10, 8, 9 등 총 1번씩 나온 숫자입니다. 

 

결론

 

이상입니다. 지금까지 파이썬 로또 프로그램 만들기 대해서 포스팅을 작성하였습니다.

 프로그래밍은 사용자가 자신이 원하는 방향대로 프로그램을 만들 수 있게 도와주는 도구입니다.

 잘 활용을 하시면 업무나 생활에서 유용하게 활용이 가능하실 겁니다.

해당 포스팅은 제 나름대로 공부하고 분석한 내용을 기반으로 작성한 글이기에 오류가 있을 수 있는 점 참조 부탁 드립니다.

감사합니다.

Leave a Comment