[Python] 로또 번호 생성
2017. 5. 7. 02:08 |
프로그래밍/기타
Python3 기준으로 로또 번호 생성 함수를 만들어 보았다.
굳이 shuffle을 하지 않아도 random으로 뽑히기는 하지만
실제 공을 추첨할 때 섞으면서 뽑으니까... 비슷하게 구현해 보았다.
#!/usr/bin/env python3 from random import random, shuffle def lotto(total, pick): nums = list(range(1, total+1)) picked_nums = [] for i in range(pick): shuffle(nums) picked_index = int(random() * len(nums)) picked_num = nums.pop(picked_index) picked_nums.append(picked_num) return picked_nums # 로또 공 45개 중 6개를 뽑아보자 if __name__ == '__main__': print(lotto(45, 6))
'프로그래밍 > 기타' 카테고리의 다른 글
Flask에서 No-Cache 헤더 설정 (0) | 2018.05.29 |
---|---|
[Python3] a^3 + b^3 = c^3 + d^3 을 만족하는 자연수 1000 이하의 조합 (0) | 2018.05.24 |
[Python] CentOS 리눅스 Python 3 설치 (1) | 2017.05.07 |
[Python] 자연수 n 이하의 소수 구하기 (1) | 2017.05.07 |
[Python] 로또 번호 생성 (4) | 2017.05.07 |
[java] 복잡도를 만족하는 랜덤 패스워드 생성 (11) | 2011.12.26 |
[java] 랜덤 패스워드 생성 (19) | 2011.05.21 |
VisualSVN 서버로 Subversion 서버 구동하기 (9) | 2011.03.09 |
[Java] 로또 번호 생성 (25) | 2011.02.12 |
2017.06.13 10:58
from random import random, shuffle --> 줄에 빨간라인이 길게 생기고
결과값이 SyntaxError: multiple statements found while compiling a single statement
뜨는데요.
2017.06.22 16:09
카피페이스트 하실때 "출처: http://snoopybox.co.kr/1750 [snoopybox]"는 지우고 하셔야죠;
2017.11.22 08:56
감사합니다. 많은 도움이 되었습니다.
그냥 한가지 고려사항은
picked_index = int(random() * (len(nums) - i))에서
random()함수 특성상 0=< x <1이라서
int변환 값이 아무리 높아도 최대 42밖에 나올수가 없겠네요? int(0.99*(44-1))=42
2018.06.15 02:17 신고
네 제가 실수했네요. i가 for문 돌면서 증가하고 len(nums)는 pop() 때문에 감소하니 결국 2씩 감소하게 되겠네요. -i 부분은 없어야 하는데 제가 실수했습니다. 수정해 두었습니다.