기존 작성했던 코딩은 이전 당첨 번호 조합은 제외하고 무작위로 숫자를 선택하는 방법이었는데 자주 등장하지 않는 숫자를 우선적으로 선택하도록, 다시 말하면 각 숫자가 몇 번 등장했는지 계산하고 그 빈도가 적은 숫자를 선택하는 전략으로 코딩을 수정해보았다. 단순한 랜덤 추출보다는 그래도 규칙성이란 걸 가질 수 있으니 가능성을 조금은 더 높일 수 있지 않을까?
import random
from collections import Counter
# 편의상 1110회부터 1124회까지의 당첨 번호를 표본으로 설정했으니 필요하다면 추가 가능
winning_numbers = [
[3, 7, 11, 20, 22, 41], # 1110회
[3, 13, 30, 33, 43, 35], # 1111회
[16, 20, 26, 36, 42, 44], # 1112회
[11, 13, 20, 21, 32, 44], # 1113회
[10, 16, 19, 32, 33, 38], # 1114회
[7, 12, 23, 32, 34, 36], # 1115회
[15, 16, 17, 25, 30, 31], # 1116회
[3, 4, 9, 30, 33, 36], # 1117회
[11, 13, 14, 15, 16, 45], # 1118회
[1, 9, 12, 13, 20, 45], # 1119회
[2, 19, 26, 31, 38, 41], # 1120회
[6, 24, 31, 32, 38, 44], # 1121회
[3, 6, 21, 30, 34, 35], # 1122회
[13, 19, 21, 24, 34, 35], # 1123회
[3, 8, 17, 30, 33, 34], # 1124회
]
# 이전 당첨 번호 전체를 하나의 리스트로 합침
all_previous_numbers = [number for numbers in winning_numbers for number in numbers]
# 각 숫자의 등장 빈도를 계산
number_frequency = Counter(all_previous_numbers)
# 숫자를 출현 빈도가 적은 순서대로 정렬
sorted_numbers_by_frequency = sorted(range(1, 46), key=lambda x: number_frequency[x])
# 다음 회차 예상 번호를 구하는 함수
def generate_next_numbers(sorted_numbers):
next_numbers = []
while len(next_numbers) < 6:
for number in sorted_numbers:
if number not in next_numbers:
next_numbers.append(number)
if len(next_numbers) == 6:
break
return sorted(next_numbers)
# 1125회 예상 번호 5개 게임 생성하기
number_of_games = 5
all_games = []
for _ in range(number_of_games):
expected_numbers = generate_next_numbers(sorted_numbers_by_frequency)
all_games.append(expected_numbers)
# 최종 결과값 출력
print(f"1110회부터 1124회까지의 당첨 번호를 기반으로 1125회 예상 번호:")
for i, game in enumerate(all_games, 1):
print(f"게임 {i}: {game}")
해서 5게임의 번호를 추출해보면
게임 1: [1, 6, 13, 20, 21, 34]
게임 2: [2, 7, 16, 19, 23, 30]
게임 3: [4, 11, 15, 25, 31, 38]
게임 4: [8, 12, 17, 26, 32, 44]
게임 5: [9, 14, 24, 33, 35, 42]
이런 조합을 얻을 수 있음.
목숨걸지 말고 재미삼아 합시다.
'일상다반사 > Lotto 645' 카테고리의 다른 글
로또 1125회 1등 당첨번호 6개 모두 공개됐다!? (0) | 2024.06.20 |
---|---|
로또 1124회차 2024.6.15. 당첨 (0) | 2024.06.18 |
로또번호 생성기 Upgrade (feat. Python) (0) | 2024.06.16 |
로또 1119회차 24.5.11. (0) | 2024.05.12 |
로또 1118회차 24.5.4. (0) | 2024.05.05 |