자료실/파이썬(Python)

파이썬(Python) - 난수생성 random모듈

자료수집중 2020. 7. 28.
반응형

 

 

 

파이썬에는 random모듈은 난수(Random Number) 생성 관련 함수를 지원합니다.

 

먼저 random을 사용하기 위해서는 다음과 같이 추가해야 합니다.

import random

 

 

 

random()

random()은 0 이상~1 미만 사이의 실수를 랜덤 하게 반환합니다.

import random

for i in range(5):
    print(random.random())

 

 

uniform()

uniform(x, y)은 두 수를 받아 x <= n <y의 실수를 랜덤 하게 반환합니다.

import random

for i in range(5):
    print(random.uniform(0, 100))

 

 

randint()

radint(x, y)는 두 개의 정수를 받아 x<= n <=y의 정수를 랜덤하게 반환합니다.

import random

for i in range(5):
    print(random.randint(0, 5))

 

 

randrange()

randrange(start, end, step)은 두개의 정수를 받아서 start <= n <end의 정수를 랜덤 하게 반환합니다.

단 랜덤하게 반환되는 정수는 step의 증가 폭에 따라서 결정됩니다.

(step은 생략 가능 생략하면 자동으로 1이 됩니다.)

import random

for i in range(5):
    print(random.randrange(1, 100, 3))

 

 

random모듈은 난수 생성뿐만 아니라 랜덤 생성 관련 함수도 다양하게 있습니다.

 

shuffle()

요소를 랜덤 하게 섞어줍니다.

import random

a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
random.shuffle(a)
print(a)

 

 

choice()

요소중 한 가지를 랜덤 하게 선택합니다.

import random

a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
print(random.choice(a))

 

 

sample()

랜덤하게 정해서 숫자만큼 요소를 정해서 리스트형으로 반환합니다.

import random

a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
print(random.sample(a, 5))

 

 

seed()

seed(a)는 난수 생성기를 초기화해줍니다.

여기서 중요한 건 seed()를 생략하거나 a=None 아무것도 넘겨주지 않으면(random.seed())일반적으로 현재 시스템 시간이 사용되어 임의의 난수를 생성합니다.

하지만 a에 값을 넘겨주게 되면 고정된 값을 반환합니다.

import random

for i in range(3):
    random.seed(1)
    print(random.random())
print()

for i in range(3):
    random.seed('a')
    print(random.uniform(0, 100))
print()

for i in range(3):
    random.seed(100)
    print(random.randrange(1, 100, 3))

print()
a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
for i in range(3):
    random.seed(100)
    print(random.sample(a, 5))

 

 

random 모듈에서 많이 사용하는 함수에 대해 알아봤습니다.

 

댓글