본문 바로가기
프로그래밍언어/Python

[로또번호생성기 5강] 프로그램 업그레이드

by plogds 2025. 6. 12.

로또 번호 생성기

로또 번호 당첨율을 올리기위해 조건을 추가해 보겠습니다.  예제 코드를 못보신분은 아래 링크 참고하시면 됩니다.

 

 

로또 번호 생성기 프로그램 예제

로또 번호 생성기많은 분들이 궁금해하시고 직접 만들어보고 싶어 하시는 '로또 번호 생성기' 프로그램 예제 소스를 공유합니다. 프로그래밍 초보자분들도 쉽게 따라 할 수 있도록 핵심 기능만

plogds.tistory.com

 

함수 구현 및 추가

로또 확률을 높이기 위해 연속 번호 개수를 제한 하려고 합니다. 예제에서는 연속번호를 최대 3까지만 허용하려고 합니다.

예) 예외 조합

1, 2, 3, 4, 30, 40

10, 11, 12, 13, 17, 45

 

1. main.py 파일에 함수 추가 

def is_valid_consecutive(numbers: List[int], max_consecutive: int = 3) -> bool:
    """
    연속번호의 개수가 허용 범위 내에 있는지 확인하는 함수
    
    Args:
        numbers: 로또 번호 리스트 (정렬된 상태여야 함)
        max_consecutive: 허용 가능한 최대 연속번호 개수
        
    Returns:
        연속번호가 허용 범위 내이면 True, 아니면 False
    """
    
    consecutive_count = 1
    max_found = 1
    
    for i in range(1, len(numbers)):
        if numbers[i] == numbers[i-1] + 1:
            consecutive_count += 1
            max_found = max(max_found, consecutive_count)
        else:
            consecutive_count = 1
    
    return max_found <= max_consecutive

 

2. 함수 호출 위치 

# 합계가 유효한지 확인
if not is_valid_sum(lotto_numbers):
    continue

# 연속 번호 제한
if not is_valid_consecutive(lotto_numbers):
    continue

# 조합이 고유한지 확인
is_unique, comparisons = is_unique_combination(lotto_numbers, past_numbers_df)

 

generate_recommendations() 함수 내부에서 호출되며, 검색으로 위치를 찾으시면 편합니다. 

 

3. 연속 번호 갯수 수정

연속번호 최대 갯수를 조정하려면 매개변수의 값을 수정하면 됩니다. 

- 연속숫자 3개까지 허용

max_consecutive: int = 3  

 

- 연속숫자 4개까지 허용

max_consecutive: int = 4  

 

마무리

로또 당첨은 운이 가장 중요한 요소이지만, 통계적 접근과 전략적 사고를 통해 조금이라도 가능성을 높일 수 있다고 생각합니다. 

 

#로또생성기 #코딩예제 #파이썬 #자바스크립트 #프로그래밍독학 #개발자 #코딩초보 #랜덤함수 #파이썬프로그램예제

댓글