반응형
파이썬의 random
모듈은 난수를 생성하고 다양한 난수 관련 기능을 제공하는 표준 라이브러리입니다. 이 모듈은 임의의 숫자, 시퀀스, 요소 등을 생성하거나 선택하는 데 유용하며, 다양한 확률 분포에 따른 값도 생성할 수 있습니다.
주요 기능 및 사용법
- 기본적인 난수 생성:
random.random()
: 0.0 이상 1.0 미만의 부동소수점 난수를 반환합니다.
import random
value = random.random()
print(value) # 예: 0.37444887175646646
- 정수 난수 생성:
random.randint(a, b)
: a와 b 사이의 정수 난수를 반환합니다. 여기서 a와 b는 모두 포함됩니다.random.randrange(start, stop[, step])
: start와 stop 사이에서 step 간격으로 정수 난수를 반환합니다. stop은 포함되지 않습니다.
import random
value1 = random.randint(1, 10) # 1과 10 사이의 정수 반환
value2 = random.randrange(0, 10, 2) # 0과 9 사이의 짝수 반환 (0, 2, 4, 6, 8 중 하나)
print(value1) # 예: 7
print(value2) # 예: 4
- 시퀀스에서 임의의 요소 선택:
random.choice(seq)
: 시퀀스(seq)에서 임의의 요소를 하나 선택하여 반환합니다.random.choices(population, weights=None, k=1)
: 가중치를 고려하여 시퀀스에서 k개의 요소를 반환합니다.random.sample(population, k)
: 시퀀스에서 중복 없이 k개의 요소를 임의로 선택하여 반환합니다.random.shuffle(x)
: 시퀀스 x의 요소들을 제자리에서 무작위로 섞습니다.
import random
items = ['apple', 'banana', 'cherry']
chosen = random.choice(items)
sample = random.sample(items, 2)
random.shuffle(items)
print(chosen) # 예: 'banana'
print(sample) # 예: ['cherry', 'apple']
print(items) # 예: ['cherry', 'banana', 'apple'] (순서는 무작위)
- 임의의 부동소수점 수 생성:
random.uniform(a, b)
: a와 b 사이의 부동소수점 난수를 반환합니다. a와 b는 포함됩니다.random.triangular(low, high, mode)
: 삼각 분포를 따르는 부동소수점 난수를 반환합니다.
import random
value1 = random.uniform(1.0, 10.0) # 1.0과 10.0 사이의 난수
value2 = random.triangular(0, 10, 5) # 0과 10 사이, 모드가 5인 삼각분포 난수
print(value1) # 예: 7.235071973812594
print(value2) # 예: 5.376074541101357
- 특정 확률 분포에서 난수 생성:
random.gauss(mu, sigma)
: 평균이mu
, 표준편차가sigma
인 가우스(정규) 분포 난수를 반환합니다.random.expovariate(lambd)
:lambd
가 레이트 파라미터인 지수분포 난수를 반환합니다.random.betavariate(alpha, beta)
: 베타 분포에서 난수를 반환합니다.random.gammavariate(alpha, beta)
: 감마 분포에서 난수를 반환합니다.
import random
value1 = random.gauss(0, 1) # 평균 0, 표준편차 1인 정규분포 난수
value2 = random.expovariate(1.5) # 레이트 파라미터가 1.5인 지수분포 난수
print(value1) # 예: -0.8492983884294251
print(value2) # 예: 0.39722326244942855
- 시드 설정:
random.seed(a=None, version=2)
: 난수 생성기의 시드를 설정합니다. 동일한 시드를 사용하면 동일한 난수 시퀀스를 생성할 수 있습니다. 시드를 설정하면 재현 가능한 결과를 얻을 수 있습니다.
import random
random.seed(42)
print(random.random()) # 시드를 동일하게 하면 항상 동일한 값이 나옴
random.seed(42)
print(random.random()) # 예: 0.6394267984578837 (항상 동일한 값)
- 시뮬레이션 및 테스트:
random
모듈은 확률 시뮬레이션, 게임, 통계 분석 및 기타 테스트 시나리오에서 사용됩니다. 예를 들어, 주사위 굴리기 시뮬레이션, 카드 덱 섞기, 랜덤 샘플링 등이 있습니다.
요약
파이썬의 random
모듈은 다양한 종류의 난수를 생성하고, 시퀀스에서 무작위 요소를 선택하거나 섞을 수 있는 기능을 제공합니다. 이러한 기능들은 확률 시뮬레이션, 통계 분석, 게임 개발, 테스트 자동화 등 여러 응용 분야에서 유용하게 사용될 수 있습니다.
반응형
'언어 > Python' 카테고리의 다른 글
[ Python ] math 패키지 사용하기 (0) | 2024.08.27 |
---|---|
[ Python ] 원하는 만큼 난수를 만들어서 누적 횟수 확인해 보기 (0) | 2024.08.27 |
[ Python ] complex 클랙스를 사용해서 복소수 다루기 (0) | 2024.08.26 |
[ Python ] 정밀한 계산에 Fraction으로 분수를 사용하기 (0) | 2024.08.25 |
[ Python ] 큰 수 계산에 Decimal 객체 사용하기 (0) | 2024.08.25 |