Python 강좌 : 제 26강 - 난수 모듈
난수 모듈
Python에서는 난수 모듈을 이용하여 특정한 순서나 규칙을 가지지 않은 무작위의 숫자
를 발생시키는 함수입니다.
임의의 숫자나 확률이 필요한 알고리즘이나 코드에 사용합니다.
상단에 import random
를 사용하여 난수 모듈을 포함시킵니다.
난수 함수의 사용방법은 random.*
을 이용하여 사용이 가능합니다.
- 결과
- 0.4383375274996887
3.528242770358927
0
6
8
random.*
을 이용하여 무작위의 숫자를 발생시킵니다.
특정 범위를 갖는 무작위 값을 반환하거나, 특정 분포의 형태를 갖는 값을 생성할 수도 있습니다.
함수 | 의미 | 반환 형식 |
---|---|---|
random() | 0.0 <= x < 1.0 | 실수형 |
unform(a, b) | a <= x < b | 실수형 |
randrange(a) | 0 <= x < a | 정수형 |
randrange(a, b) | a <= x < b | 정수형 |
randint(a, b) | a <= x <= b | 정수형 |
목록을 사용하는 난수 함수
- 결과
- 100
[1000, 100]
[100, 1000, 10, 1]
random.*
을 이용하여 목록(List)
의 값을 추출하거나 변경할 수 있습니다.
함수 | 의미 | 반환 형식 |
---|---|---|
choice(L) | 임의의 원소값 하나를 반환 | 원소의 데이터 형식 |
sample(L, n) | 임의의 원소값 n개를 반환 | 목록 |
shuffle(L) | 목록 무작위 재배열 | 목록 |
난수 상태 설정
- 결과
- [6, 9, 0, 2, 4]
[7, 6, 4, 3, 2]
[6, 9, 0, 2, 4]
난수 함수가 생성하는 데이터는 현재 시스템 시간
을 기준으로 무작위의 숫자값을 반환합니다.
그러므로, 실행할 때마다 결괏값이 달라지게 됩니다.
하지만, 발생 기준값을 동일하게 맞춘다면 항상 같은 난수를 생성하게 됩니다.
시드값 설정 함수(random.seed)
로 기준값을 설정할 수 있습니다.
random.seed(시드값)
을 통해 동일한 난수를 발생시킬 수 있습니다.
만약, 시드값에 None
을 입력하거나 작성하지 않을 경우 현재 시간으로 설정됩니다.
시드값은 프로그램 단위로 적용되며, 코드의 줄 단위로는 일련의 규칙을 따라가게 됩니다.
즉, 첫 번째, 두 번째, … N 번째의 전체 패턴은 같아지지만, 첫 번째와 두 번째의 값은 서로 다르게 됩니다.
첫 번째와 두 번째 또는 임의의 난수 패턴을 동일하게 맞추려면, 난수 생성 상태를 저장하고 불러오는 방법이 있습니다.
난수 상태 가져오기 함수(random.getstate)
를 통해 난수가 발생 될 때의 생성 조건을 가져옵니다.
난수 상태 적용하기 함수(random.setstate)
로 저장한 난수 상태를 적용할 수 있습니다.
난수 상태를 가져온 뒤, 특정 구문에 적용한다면 언제 실행하더라도 항상 동일한 결과를 얻을 수 있습니다.
댓글 남기기