반응형
Lotto 번호.
아내에게 Lotto 번호 프로그램을 하나 만들어주었는데.
주 사용하는 Java가 아닌 다른 언어로 사용해보고 싶은 마음에.
python으로 개발.
알고리즘 그런 것은 없지만 한달동안.
1주에 1만원씩 총 4번의 시도 중 5등(5000원) 2번, 4등(5만원)의 당첨이 되면서.
프로그램 괜찮다고 자화자찬 중.
적지 않은 Lotto 인생 중 모든 번호가 나오는 기이한 기록을 겪으면서.
내가 뽑은 Random 수 중에서 다시 한줄로 뽑으면 어떨까 라는 생각을 하면서.
프로그램 수정이 필요하다고 생각되었다.
참고.
- https://docs.python.org/3/tutorial/datastructures.html
Random.
내가 뽑은 Random수 중에서 다시 Random으로 수를 뽑아야 해서.
추가(아래)
1 2 | # 공통 import random |
1번. List내에서 1개만 Random으로 추출(아래)
1 2 | lotto = [2, 10, 17, 18, 30, 45] choiceLotto = random.choice(lotto) |
2번. List내에서 중복 허용하지 않으면서 2개 이상 Random으로 추출(아래)
1 2 3 | lotto = [2, 10, 17, 18, 30, 45] # 리스트에서 2개 랜덤 추출 sampleLotto = random.sample(lotto, 2) |
3번. List내에서 중복 허용하면서 2개 이상 Random으로 추출(아래)
1 2 3 | lotto = [2, 10, 17, 18, 30, 45] # 리스트에서 2개 랜덤 추출(중복 허용) choiceLottoList = [random.choice(lotto) for i in range(2)] |
결정.
Random으로 뽑은 수 중에서 다시 Random으로 수를 뽑아야 하고,
중복이 되면 안되기 때문에.
2번의 방법으로 진행 .(아래)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | 로또 번호 자동 생성 프로그램 시작 ------------------------------------------- 게임수를 입력하세요. 숫자만 입력 가능합니다. : 숫자입력 :5 ------------------------------------------- 랜덤으로 뽑은 Lotto 숫자 [13, 14, 23, 29, 38, 41] [9, 13, 20, 30, 41, 45] [5, 12, 14, 21, 23, 29] [8, 9, 13, 20, 21, 22] [8, 29, 37, 41, 43, 45] 랜덤으로 뽑힌 Lotto 숫자 중에서 다시 랜덤으로 뽑은 숫자 [8, 13, 21, 23, 38, 41] [8, 20, 23, 30, 43, 45] [8, 9, 14, 23, 37, 38] [12, 13, 21, 22, 29, 45] [5, 8, 9, 20, 29, 37] ------------------------------------------- 로또 번호 자동 생성 완료 |
완성하였다.
총평.
이참에 알고리즘을 설계해봐야 하나 생각해본다.
반응형
'프로그래밍이야기 > python' 카테고리의 다른 글
[python] append와 extend (0) | 2020.05.19 |
---|
댓글