Random 모듈
1. Random 라이브러리
파이썬의 random
라이브러리는 다양한 유형의 무작위 수 생성 기능을 제공합니다. 하지만 정확한 의미에 난수는 아닙니다. 컴퓨터 과학에서 말하는 난수는 시스템적으로 만들어진 임의의 수를 적용하는 것을 의미합니다.
이 모듈은 대부분 메르센 트위스터라는 난수 생성기를 사용합니다. 다양한 언어에서 사용하고 있는 난수 생성기로, 대부분의 난수 생성기가 그렇듯이 시드(seed)를 사용합니다. 시드는 난수 생성기가 생성하는 난수의 초기값을 의미합니다. 이 시드를 설정하면 난수 생성기가 생성하는 난수가 항상 동일하게 나옵니다. 결국 난수가 생성되는 규칙이 있는 것이며, 이를 의사 난수(pseudo-random)라고 합니다. 이러한 방식은 시드 값과 이전 값을 이용하면 다음 난수를 예측할 수 있기 때문에 정확한 의미에 난수가 아닌 것입니다.
이렇게 생성된 수는 게임, 시뮬레이션, 테스트 데이터 생성, 보안과 관련된 프로그래밍 등 다양한 분야에서 활용되며, 다음과 같은 메서드를 제공합니다.
1.1 난수 생성 (Random Number Generation)
randint(a, b)
:a
와b
사이의 무작위 정수를 생성합니다.b
도 범위에 포함됩니다.randrange(start, stop[, step])
: 지정된 범위에서 무작위 정수를 반환합니다.start
부터stop - 1
까지, 선택적으로step
을 지정할 수 있습니다.random()
: 0과 1 사이의 무작위 실수를 반환합니다.
1.2 시퀀스 내 요소 무작위 선택 및 조작
choice(sequence)
: 주어진 시퀀스(리스트, 튜플 등)에서 임의의 요소를 선택합니다.shuffle(sequence)
: 주어진 시퀀스의 요소 순서를 무작위로 섞습니다.sample(sequence, k)
: 주어진 시퀀스에서k
개의 무작위 요소를 선택합니다.
1.3 분포 기반 난수 생성
uniform(a, b)
: 주어진 범위 내에서 균등 분포를 따르는 무작위 실수를 반환합니다.normalvariate(mu, sigma)
: 정규 분포를 따르는 무작위 실수를 반환합니다. 여기서mu
는 평균,sigma
는 표준편차입니다.
2. Random 라이브러리 사용 예시
여기서는 자주 사용되는 메서드를 살펴보도록 하겠습니다.