WeniVooks

검색

견고한 파이썬

Random 모듈

1. Random 라이브러리

파이썬의 random 라이브러리는 다양한 유형의 무작위 수 생성 기능을 제공합니다. 하지만 정확한 의미에 난수는 아닙니다. 컴퓨터 과학에서 말하는 난수는 시스템적으로 만들어진 임의의 수를 적용하는 것을 의미합니다.

이 모듈은 대부분 메르센 트위스터라는 난수 생성기를 사용합니다. 다양한 언어에서 사용하고 있는 난수 생성기로, 대부분의 난수 생성기가 그렇듯이 시드(seed)를 사용합니다. 시드는 난수 생성기가 생성하는 난수의 초기값을 의미합니다. 이 시드를 설정하면 난수 생성기가 생성하는 난수가 항상 동일하게 나옵니다. 결국 난수가 생성되는 규칙이 있는 것이며, 이를 의사 난수(pseudo-random)라고 합니다. 이러한 방식은 시드 값과 이전 값을 이용하면 다음 난수를 예측할 수 있기 때문에 정확한 의미에 난수가 아닌 것입니다.

이렇게 생성된 수는 게임, 시뮬레이션, 테스트 데이터 생성, 보안과 관련된 프로그래밍 등 다양한 분야에서 활용되며, 다음과 같은 메서드를 제공합니다.

1.1 난수 생성 (Random Number Generation)
  • randint(a, b): ab 사이의 무작위 정수를 생성합니다. 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 라이브러리 사용 예시

여기서는 자주 사용되는 메서드를 살펴보도록 하겠습니다.

2.1 난수 생성
import random # randint: a와 b 사이의 무작위 정수 생성 random_int = random.randint(1, 10) print("Random integer:", random_int) # random: 0과 1 사이의 무작위 실수 생성 random_float = random.random() print("Random float:", random_float)
2.2 시퀀스 내 요소 무작위 선택 및 조작
# choice: 시퀀스에서 임의의 요소 선택 colors = ['red', 'blue', 'green', 'yellow'] chosen_color = random.choice(colors) print("Chosen color:", chosen_color) # shuffle: 시퀀스의 요소 순서 섞기 random.shuffle(colors) print("Shuffled colors:", colors)
{"packages":["numpy","pandas","matplotlib","lxml"]}
14.9 collections 모듈14.11 바이트와 바이트배열