본문 바로가기
💾 공대 라이프/웹앱

ChatGPT로 만든 로또 번호 생성기 | 재미로만 사용해요~~

by kuve 2025. 4. 5.
반응형

 

매주 로또를 사는 회사원 1인으로써!! 

매번 로또 판매점에서 자동으로 번호를 받아왔습니다. 

그런데 로또가 조작이다 아니다 워낙 말도 많고,,, 

좀 더 재미있게 로또를 해보기 위해서 ChatGPT로 로또 번호를 만들어 봤어요. 

 


 


 

그럼 이 로또 번호 생성기를 어떻게 만들었느냐??? 

간단합니다!!! 

GPT에서 랜덤 함수로 로또 번호 6개를 추출하는 코드를 짜달라고 했어요@@ 

 

내용은 아래와 같습니다!!! 

 

 

 

 

그럼 여기에서 드는 생각!!

ChatGPT에서 생성할 때의 random 함수는 어떻게 번호를 생성해 내는걸까?? 

그래서 GPT에게 물어봤습니다~~ 

 

 

 

 

쉽게 말해서 Python이 제공하는 random 모듈을 기반으로 생성한다는 내용입니다. 

 

"파이썬[2](영어: Python)은 1991년[3] 네덜란드계 소프트웨어 엔지니어인 귀도 반 로섬[4]이 발표한 고급 프로그래밍 언어로, '인터프리터를 사용하는 객체지향 언어'이자 플랫폼에 독립적인, 동적 타이핑(dynamically typed) 대화형 언어다" - 출처 : 위키백과

 

그 내용을 좀 더 살펴 보면~~ 

 

🔍 1. random.sample(range(1, 46), 6) 의 동작

  • 기능:
    지정된 범위(여기서는 1~45)에서 중복 없이 6개의 숫자를 무작위로 선택함.
  • 과정:
    내부적으로는 range(1, 46)을 리스트로 변환한 뒤, 무작위로 6개를 선택함.
    선택된 숫자들은 서로 중복되지 않음.
  • 사용된 알고리즘:
    random.sample()은 Fisher-Yates 셔플 알고리즘을 응용해서 선택함.
    이는 리스트를 섞은 뒤, 앞에서부터 필요한 개수만큼 잘라내는 방식이야.

🔍 2. random.randint(1, 45) 의 동작

  • 기능:
    지정된 범위에서 정수 하나를 무작위로 선택함.
    예: random.randint(1, 45) → 1 이상 45 이하의 정수 중 하나 선택.
  • 사용된 알고리즘:
    내부적으로는 random.randrange(start, stop+1)을 사용함.
    숫자를 균등한 확률로 선택하기 위해 Mersenne Twister라는 알고리즘을 사용해 난수를 생성함.

🧠 추가 정보: "의사 난수"란?

  • Python의 random 모듈은 실제로 **완전한 난수(true random)**가 아니라,
    **특정 수학 공식을 통해 만들어진 예측 가능한 난수(의사 난수)**를 사용해.
  • 기본적으로는 random.seed()로 시작값이 설정되며, 같은 seed를 주면 같은 결과가 나와.

🎲 요약

함수기능중복 여부설명
random.sample(range(1, 46), 6) 1~45에서 6개 선택 ❌ 없음 중복 없이 무작위 선택
random.randint(1, 45) 1~45에서 1개 선택 ✅ 가능 중복 가능, 하나씩 생성할 때 사용

 

 

 

 

🔁 두 랜덤 함수의 용도 차이

✅ 1. random.sample(range(1, 46), 6)

  • 주 역할:
    로또 당첨 번호 6개를 중복 없이 한 번에 생성하는 데 사용
  • 왜 사용하냐면:
    실제 로또는 같은 번호가 중복될 수 없기 때문이야!
    예: [5, 11, 23, 28, 37, 42] ← 모두 다름

✅ 2. random.randint(1, 45)

  • 주 역할:
    슬롯머신 느낌을 줄 때, 번호가 정해지기 전 잠깐 보여주는 임시 숫자로 사용
  • 왜 사용하냐면:
    진짜 번호가 등장하기 전, 눈을 현혹하는(?) 슬롯머신 느낌을 주기 위해 빠르게 숫자를 바꾸는 연출을 넣은 거야.
    예:
  • less
    복사편집
    [14][32][6][45] → 최종: [23]

🎰 그래서 요약하면...

랜덤 함수역할이유
random.sample() 최종 로또 번호 6개 생성 중복 없이 한 번에 안전하게 뽑기 위해
random.randint() 시각적 효과용 "가짜" 숫자 보여주기 슬롯머신 애니메이션을 연출하기 위해

👉 만약 애니메이션 없이 바로 6개만 뽑고 싶으면?

random.sample()만 써도 충분해!

근데 사용자 경험을 위해 재미 요소(슬롯머신 느낌)를 추가하면서 random.randint()도 같이 쓴 거지. 🎉

 


 

이상으로!! 

로또 번호 생성기를 생성/완료하였습니다.

저는 오늘부터 자동으로 로또를 살 때, 제가 만든 앱을 이용해 보도록 할게요~~~~~ 

 

아... 어쩌지?? 

이러다 1등 되면;;;;;

 


 

 

** [강아지 MBTI 테스트앱] 강아지도 MBTI가 있을까?? 강아지 MBTI를 테스트해보자~~

 

 

 

** [휴일 계산기] 2025년 전체 휴일 수는 117일!!! 전체의 32%나 된다고????

 

 

반응형

댓글