안녕하세요, 로또 애호가 여러분! 🎉 오늘은 로또 번호의 출현 빈도를 활용해 어떤 번호를 제외해야 할지에 대한 재미있는 방법을 공유하려고 합니다. 로또를 한 번이라도 해보신 분들은 아시겠지만, 매번 같은 번호를 선택하다 보면 "이 번호는 도대체 왜 이렇게 자주 나오는 거지?" 하는 생각이 드실 겁니다. 🤔
### 출현 빈도가 중요한 이유
로또는 기본적으로 무작위로 번호가 뽑히지만, 특정 번호들이 과거에 더 자주 등장하는 경향이 있습니다. 그렇기 때문에 출현 빈도를 살펴보는 것은 매우 유용합니다. 예를 들어, 최근 30회차의 로또 번호를 분석하면, 어떤 번호가 빈번하게 등장했는지를 알 수 있습니다.
### 빈도 수 집계하기
우리가 사용할 방법은 두 가지입니다:
1. 최근 30회차 로또 번호를 수집합니다.
2. 각 번호의 출현 빈도를 계산하여, 가장 많이 나온 번호 3개와 가장 적게 나온 번호 3개를 찾아냅니다.
이제 코드로 직접 확인해볼까요?
def fetch_recent_lotto_frequencies():
"""
현재 회차부터 최근 30회차의 로또 번호를 가져오고,
각 번호의 출현 빈도를 반환하는 함수입니다.
"""
current_draw = get_latest_draw_no() # 최신 회차를 동적으로 가져옴
recent_lotto_numbers = []
for i in range(current_draw, current_draw - 30, -1):
url = f"https://www.dhlottery.co.kr/common.do?method=getLottoNumber&drwNo={i}"
response = requests.get(url)
data = response.json()
if data['returnValue'] == 'success':
numbers = [
data['drwtNo1'], data['drwtNo2'], data['drwtNo3'],
data['drwtNo4'], data['drwtNo5'], data['drwtNo6']
]
recent_lotto_numbers.extend(numbers) # 모든 번호를 리스트에 추가
# 출현 빈도 계산
frequency_counter = Counter(recent_lotto_numbers)
# 결과를 빈도수 별로 정렬
sorted_frequencies = sorted(frequency_counter.items(), key=lambda x: x[1], reverse=True)
# 상위 3개와 하위 3개 번호 추출
top_numbers = [number for number, count in sorted_frequencies[:3]]
bottom_numbers = [number for number, count in sorted_frequencies[-3:]]
# 숫자만 반환
return top_numbers + bottom_numbers
위의 코드는 현재 회차부터 최근 30회차의 로또 번호를 수집한 후, 각 번호의 출현 빈도를 계산하여 상위 3개와 하위 3개 번호를 추출합니다.
### 제외 숫자 리스트 만들기
이제 우리가 수집한 출현 빈도를 사용하여 유니크한 제외 숫자 리스트를 만들어보겠습니다. 아래와 같은 과정을 통해 상위와 하위 번호를 제외 숫자에 추가할 수 있습니다.
def get_combined_excluded_numbers(round, combined_excluded_numbers):
"""
최근 30회차 로또 번호를 가져오고,
출현 빈도를 기반으로 상위 3개 및 하위 3개 번호를 추가한 유니크한 제외수 리스트를 반환합니다.
"""
# 최근 30회차 로또 번호를 가져옴
recent_lotto_numbers = fetch_recent_lotto_missing_numbers()
combined_excluded_numbers.update(recent_lotto_numbers)
winning_numbers = fetch_winning_numbers()
print('winning_numbers : ', winning_numbers)
# 전, 전전 회차와의 중복된 숫자 추가
excluded_from_consecutive = find_consecutive_excluded_numbers(winning_numbers, round)
print('excluded_from_consecutive : ', excluded_from_consecutive)
combined_excluded_numbers.update(excluded_from_consecutive)
# 유니크한 excluded_numbers를 정렬
unique_excluded_numbers = sorted(combined_excluded_numbers)
# 최근 30회차 로또 번호 출현 빈도 가져오기
frequency_numbers = fetch_recent_lotto_frequencies()
# 상위 3개 및 하위 3개 번호 추가
top_excluded = frequency_numbers[:3]
bottom_excluded = frequency_numbers[-3:]
# 유니크한 제외수에 상위 및 하위 번호 추가
unique_excluded_numbers.extend(top_excluded)
unique_excluded_numbers.extend(bottom_excluded)
# 중복 제거 후 정렬
unique_excluded_numbers = sorted(set(unique_excluded_numbers))
return unique_excluded_numbers
### 결론
이제 여러분은 최근 로또 번호의 출현 빈도를 바탕으로 상위 및 하위 번호를 제외 숫자에 추가할 수 있는 방법을 알게 되었습니다! 🥳 이러한 방식은 여러분이 선택할 번호의 범위를 좁히는 데 큰 도움이 될 것입니다. 물론 로또는 운이 많이 작용하는 게임이지만, 조금 더 전략적으로 접근하면 성공 확률을 높일 수 있을지도 모릅니다.
이제 여러분도 로또 번호 선택 시 빈도를 고려해 보세요! 다음 번 로또 추첨에서 행운이 함께하길 바랍니다! 🍀✨
'파이썬으로 로또 1등 도전기' 카테고리의 다른 글
24일차) 로또 1144회차 예상번호 대공개! (0) | 2024.10.28 |
---|---|
23일차) 당첨된 보너스 히스토리 제외수 추가 (0) | 2024.10.27 |
21일차) 로또 제외수와 정확도 표시 기능 추가 (0) | 2024.10.27 |
20일차) 전, 전전 회차의 당첨 번호를 제외 수에 추가하기 (0) | 2024.10.27 |
19일차) 최신 30회차의 로또 번호에서 출현하지 않는 숫자들을 제외 (0) | 2024.10.27 |