[Python] 파이썬으로 랜덤(random) 사용 및 로또 만들기
- Language/Python
- 2021. 1. 29.
랜덤 모듈은 난수값을 생성하기 위한 기능을 담고 있는 모듈로 다양한 랜덤 관련 함수를 제공하고 있다. 랜덤 모듈의 경우 게임등에서도 활용할 수 있지만 데이터 분석에서도 다양한 결과를 실험하기 위해서도 쓰일 수 있으며 화면에서 데이터들을 랜덤으로 노출하고 싶을 때에도 사용할 수 있는 등 활용 방법은 매우 다양하다.
랜덤 사용 방법
import random
random.random() # 0~1의 실수값
기본적으로 random.random() 함수를 사용하면 0~1의 실수값을 호출하게 된다. 위의 random을 호출한 결과는 그때그때 다르겠지만
이와같이 모두 0~1사이의 실수가 나오는 것은 확인할 수 있다.
값의 범위 지정하기
0~1의 값을 이용하여 다양한 랜덤을 구현할 수도 있겠지만, 값의 범위를 지정하여 보다 정교한 랜덤을 구현할 수 있다.
uniform
>>> random.uniform(1,6)
1.8382400407104706
>>> random.uniform(1,6)
1.6911172903066283
>>> random.uniform(1,6)
4.609651815893047
random() 함수 대신 uniform 함수를 사용하면, 첫번째 값부터 마지막 값의 사이의 실수값을 리턴한다.
정수 사용하기
실수값을 정수값으로 변형하여 사용할 수 있겠지만, 정수값으로 리턴해주는 함수 역시 지원하고 있다. uniform의 경우 데이터 분석에서는 활용할 수 있지만, 우리가 보편적으로 랜덤을 사용하는 것은 정수값을 리턴하는 경우가 많다.
randint
>>> random.randint(1,6)
2
>>> random.randint(1,6)
5
>>> random.randint(1,6)
3
이와 같이 주사위와 같은 기능을 매우 쉽게 구현할 수 있다.
심화, 로또 번호 생성하기
import random
lotto_set = set([])
while len(lotto_set) < 6:
lotto_set.add(random.randint(1, 45))
print(lotto_set)
# {33, 5, 8, 12, 23, 26}
로또 번호는 중복된 값이 나올 수 없는 구조이기 때문에 중복이 될 수 없는 set형태로 값을 담으며, set 사이즈가 6이 넘어가면 중단하는 간단한 알고리즘이다.
연관포스팅
2020/12/08 - [Language/Java] - [Java] 자바 랜덤함수(Random) 및 Seed 설명
2020/11/26 - [Language/Java] - [Java] 자바로 로또 번호 생성하기
'Language > Python' 카테고리의 다른 글
[Python] 파이썬, 평균, 분산, 표준편차 구하기 (0) | 2021.05.22 |
---|---|
[Python] 파이썬, 소인수 분해하기 (0) | 2021.05.22 |
[Python] 파이썬의 생성자와 소멸자 (0) | 2021.01.17 |
[Python] 파이썬, 문자열 포맷팅 하기(format 함수) (0) | 2021.01.17 |
[Python] 파이썬, 데이터를 걸러주는 Filter 내장함수 (0) | 2021.01.11 |