프로그래밍

[Python] 로또 번호를 만들어 볼까? #1

Tiboong 2024. 7. 15. 19:13
728x90
반응형

갑자기... 로또 번호를 만들어 보고 싶어졌다... 벌써 로도 추첨은 1128회까지 진행됐고

그동안 내가 로또에 들인 돈은... 매회 만원씩이라고 치면...이런...

이제 경우의 수는 많이 줄어들었다! 해볼만해...

먼저... 1부터 45사이의 숫자 중에 6개를 뽑았을 때 중복되지 않는 모든 숫자의 조합을 구해보자.

 

def generate_all_lotto_combinations():
  """
  1부터 46까지의 숫자 중 중복되지 않는 6개의 숫자 조합을 모두 생성합니다.

  Returns:
    모든 조합을 포함하는 리스트 (예: [[1, 2, 3, 4, 5, 6], [1, 2, 3, 4, 5, 7], ...])
  """
  # itertools 라이브러리의 combinations 함수 사용
  combinations = itertools.combinations(range(1, 46), 6)
  return list(combinations)

 

이러면 전체 숫자는 몇개?

8,145,060개가 나온다! 후후후... 여기서 이미 나온 번호는 제외 해보자... 그럴려면 이미 나온 번호를 모아놓은 엑셀을 구해서...쿨럭~!

 

# 구해라 얻을 것이다... 괜히 가진거 올려놨다가 원래 파일 주인한테 혼날까봐 생략합니다.
# 파일을 연다. pandas로 읽어온다. 리스트로 만든다.

excluded_numbers = get_excluded_numbers_from_excel()

 

후후... 이제 거의 다 됐다... 차집합을 만들면 돼!

rest_numbers = list(set(all_possible_numbers) - set(excluded_numbers))
print(len(rest_numbers))

 

자 이제 몇개가 남았냐?!!!

8,143,932개!!! 아악!!!

 

더 빼야겠다... 더 빼는 건 다음 편에...

728x90
반응형