파이썬 random모듈

허선우·2021년 5월 23일
0

PYTHON

목록 보기
4/17
post-thumbnail

파이썬 랜덤모듈이란 랜덤으로 숫자를 출력해주는 모듈이다.

1.random.random()

0과 1 사이의 난수 하나를 출력해준다.

#편의상 random모듈을 r이라고 표현하겠다.
import random as r

r.random()

#결과
0.8118370195916361

random은 0과 1 사이의 난수 하나를 출력해 준다.

2.random.randrange(a,b)

a와 b사이의 난수 하나를 출력해 준다.

#편의상 random모듈을 r이라고 표현하겠다.
import random as r

#랜덤으로 주사위의 수 출력

r.randrange(1,7)
#range()함수처럼 randrandge(숫자1,숫자2)도 숫자1이상, 숫자2미만의 범위를 갖는다.

#결과
2

3. random.shuffle()

shuffle함수는 음악어플의 shuffle기능 처럼 리스트안에 들어있는 순서를 뒤죽박죽으로 만들어 준다.


import random as r
char = ['a','b','c','d','e','f','g']
num = [1,2,3,4,5,6]

r.shuffle(char)
r.shuffle(num)

print(char)
print(num)

결과
['d', 'f', 'a', 'e', 'b', 'g', 'c']
[1, 5, 2, 4, 6, 3]

#문자 숫자 상관없이 가능하다.

shuffle기능은 기존에 있던 순서룰 바꾸는 것일 뿐, 
출력을 해주는 함수가 아니기 때문에 print를 쓸 수 없다. 

import random as r
char = ['a','b','c','d','e','f','g']

print(r.shuffle(char))

#결과
None

shuffle된 값을 보고 싶다면 다시 char을 출력해줘야 한다.
import random as r
char = ['a','b','c','d','e','f','g']

r.shuffle(char)
print(char)

#결과
['c', 'f', 'd', 'g', 'a', 'e', 'b']

4.random.choice()

리스트 내의 원소 하나를 랜덤으로 출력해 준다.

import random as r
char = ['a','b','c','d','e','f','g']

print(r.choice(char))

#결과
a

shuffle을 사용한 문제

남학생이면서 소설책을 좋아할 조건부 확률은?

P(소설책 | 남학생) = 25%

소설책 여행책
남 10 30
여 40 20
문제설명:

import random

import numpy as np

a=['ms']*10

b=['my']*30

c=['ws']*40

d=['wy']*20

e=a+b+c+d

random.shuffle(e)

cnt=0

cnt2=0

for i in range(100000):

    result = np.random.choice(e)

    if  result[0]=='m':

        cnt = cnt + 1

        if result[1] =='s':

            cnt2 = cnt2 + 1

m = cnt/100000

ms = cnt2/100000

print(round(ms/m*100)) 


0개의 댓글