2021. 03. 13 토요일
Case Study: Hacker Statistics
Random float
- 넘파이의
random
패키지를 사용해 무작위의 값을 불러올 수 있다.
seed()
로 시드를 지정하면 무작위지만 시드를 통해 같은 값을 다시 불러올 수 있다.
rand()
를 통해 무작위 값을 불러온다. (인수를 지정하지 않으면 0과 1 사이의 부동 소수점을 랜덤으로 출력한다.)
import numpy as np
np.random.seed(13579)
print(np.random.rand())
0.16772036313639027
- 위에서
np.random.seed(13579)
를 통해 시드를 지정해주었기 때문에 몇번을 반복하여도 같은 결과가 나오게 된다. 시드를 지정하지 않는다면 매번 다른 결과가 출력된다.
Random Integer
randint()
는 지정한 범위 내의 정수를 랜덤으로 출력한다.
import numpy as np
print(np.random.randint(1, 7))
4
Random for loop
for
루프에서 random
을 응용할 수 있다.
range()
는 for
를 몇번 반복할 지 범위를 지정한다.
- 잔액 $1000에서 시작하여 $5 ~ $1000 사이의 랜덤한 금액을 5번 빼고 결제 내역과 잔액, 최종 잔액을 출력하는 루프문을 작성해보았다. 만약 결제 금액이 잔액보다 클 경우 잔액에서 빼지 않고 기록만 남긴다.
잔액 = 1000
결제금액 = []
통장내역 = []
for 쇼핑 in range(5) :
소비 = np.random.randint(5, 1000)
if 소비 <= 잔액 :
잔액 = 잔액 - 소비
결제금액.append('$'+str(소비))
통장내역.append('$'+str(잔액))
elif 소비 > 잔액 :
결제금액.append('$'+str(소비) + '(잔액부족)')
통장내역.append('$' + str(잔액))
continue
print('결제 내역 : ' + str(결제금액))
print('잔액 : ' + str(통장내역))
print('최종 잔액 : $' + str(잔액))
결제 내역 : ['$21', '$650', '$365(잔액부족)', '$114', '$91']
잔액 : ['$979', '$329', '$329', '$215', '$124']
최종 잔액 : $124