파이썬 random 라이브러리: 난수 생성과 관련 함수

파이썬 random 라이브러리: 난수 생성과 관련 함수

파이썬은 여러 가지 난수 생성과 관련된 기능을 제공하는 random 라이브러리를 포함하고 있습니다. 이 라이브러리는 다양한 확률 분포에서 난수를 생성하거나, 시퀀스의 항목을 무작위로 선택하거나, 리스트의 항목을 무작위로 섞는 등의 기능을 제공합니다. 이 글에서는 random 라이브러리의 몇 가지 주요 기능에 대해 알아보겠습니다.

random 라이브러리의 주요 기능

random 라이브러리는 다양한 난수 생성 기능을 제공하며, 이를 통해 무작위 데이터를 생성하거나 시뮬레이션을 수행하는 데 사용할 수 있습니다.

1. 기본 난수 생성

random.random 함수는 0과 1 사이의 부동소수점 난수를 반환합니다. 이 난수는 0 이상 1 미만의 범위에서 균등 분포를 따릅니다.

import random

print(random.random())  # 0 이상 1 미만의 부동소수점 난수 출력: 0.7095608800623782

2. 정수형 난수 생성

random.randint 함수는 지정된 범위 내에서 정수형 난수를 생성합니다.

import random

print(random.randint(1, 10))  # 1부터 10 사이의 정수형 난수 출력: 8

3. 시퀀스 항목의 무작위 선택

random.choice 함수는 시퀀스(리스트, 튜플, 문자열 등)에서 임의의 항목을 선택합니다.

import random

my_list = [1, 2, 3, 4, 5]
print(random.choice(my_list))  # 리스트에서 임의의 항목 선택하여 출력: 2

4. 시퀀스 특정 길이의 무작위 샘플 추출

random 라이브러리의 sample 함수는 주어진 시퀀스에서 특정 길이의 무작위 샘플을 추출하는 데 사용됩니다.


▼ 로또 번호를 생성하는 예제

import random

def generate_lotto_numbers():
    return random.sample(range(1, 47), 6)

print(generate_lotto_numbers())  # 출력: [36, 15, 23, 45, 43, 30]

위의 코드를 실행하면 1에서 46까지의 숫자 중에서 무작위로 6개의 숫자를 선택하여 리스트로 반환합니다. 매번 실행할 때마다 다른 번호들이 생성됩니다.

5. 리스트 항목의 순서 무작위로 변경

random.shuffle 함수는 리스트의 항목 순서를 무작위로 변경합니다.

import random

my_list = [1, 2, 3, 4, 5]
random.shuffle(my_list)
print(my_list)  # 무작위로 섞인 리스트 출력: [5, 1, 2, 4, 3]

6. 다양한 확률 분포에서 난수 생성

random 라이브러리는 다양한 확률 분포(가우시안, 지수, 감마 등)에서 난수를 생성하는 함수를 제공합니다. 예를 들어, random.gauss 함수는 평균과 표준편차를 인자로 받아 가우시안 분포(정규 분포)에서 난수를 생성합니다.

import random

mean = 0
std_dev = 1
print(random.gauss(mean, std_dev))  # 가우시안 분포에서 난수 출력: -0.432032910441099

이 외에도 random 라이브러리는 지수 분포, 감마 분포 등 다양한 확률 분포에서 난수를 생성하는 함수를 제공하며, 이는 통계적 시뮬레이션 등에 유용하게 사용될 수 있습니다.

7. 난수 생성기 시드 설정

random.seed 함수를 사용하면 난수 생성기의 시드(seed)를 설정할 수 있습니다. 이 시드 값은 난수 생성기가 생성하는 난수의 시작점을 결정합니다. 시드 값을 지정하면 동일한 시드 값에서는 동일한 난수 시퀀스가 생성되므로, 특정 시뮬레이션을 재현할 때 유용합니다.

import random

random.seed(1)  # 난수 생성기 시드 설정
print(random.random())  # 시드 값에 따른 난수 출력: 0.13436424411240122


☞ 파이썬의 random 라이브러리는 다양한 확률 분포에서 난수를 생성하거나, 시퀀스의 항목을 무작위로 선택하거나 섞는 등 다양한 기능을 제공합니다. 이 라이브러리는 간단한 무작위 데이터 생성부터 복잡한 통계적 시뮬레이션에 이르기까지 다양한 상황에서 유용하게 사용될 수 있습니다.

참고 자료

함께 보면 좋은 이전 게시글

위로 스크롤