Python으로 배우는 이산 사건 시뮬레이션
Diogo Costa (PhD, MSc)
Adjunct Professor, University of Saskatchewan, Canada & CEO of ImpactBLUE-Scientific
랜덤화란?
참고: 컴퓨터는 설계상 완전한 난수를 생성할 수 없습니다.
진정한 난수 생성
의사난수 생성
예: 수작업 조립 공정이 있는 공장

사용 가능한 통계 패키지:
Random 패키지
본 강의 초점
지정 범위의 정수 난수
메서드:
random.randint(start, end)
예: 3(포함)에서 9(미포함) 사이 정수
random.randint(3, 9)
5
지정 범위의 실수 난수
메서드:
random.uniform(start, end)
예: 3에서 9 사이 실수
random.uniform(3, 9)
6.4557754
시퀀스에서 무작위 표본 추출
메서드:
random.sample(mylist, k=number_samples)
예: 리스트에서 무작위 2개 요소
mylist = ["apple", "banana", "cherry"]
random.sample(mylist, k=2)
['cherry', 'banana']
리스트 셔플(요소 재배열)
메서드:
random.shuffle(mylist)
예: 리스트 요소 무작위 재배열
mylist = ["book", "pencil", "eraser"]
random.shuffle(mylist)
['eraser', 'pencil', 'book']
가우시안 분포
메서드:
random.gauss(average, standard_dev)
예: 평균 100, 표준편차 50의 의사난수 실수
random.gauss(100, 50)
123.59383
지수 분포
메서드:
random.expovariate(lambda)
lambda>0이면 결과는 [0, infinity]lambda<0이면 결과는 [-infinity, 0]예: 람다 1.5의 지수 분포 의사난수: random.expovariate(1.5)
0.2234355
Python으로 배우는 이산 사건 시뮬레이션