Software Workshop

Random이란?

Pseudo-random

PRNG

LCG

$$
X_ = (aX_ + c) mod m
$$

Random의 특성

Uniform distribution

분포의 비교

원주율 계산을 해보자

image

"Monte-Carlo" 방법에 의한 원주율 계산 시뮬레이션

중간적 성질을 가지는 random 분포

"Equi-distribution"
"quasi-random"

quasi_random_distribution_in_2_dimension.png

구체적인 수열 생성 방법

1차원에서

van der Corput 수열

다차원에서

R-sequence 알고리즘

$$
R_1(\alpha)\ :\ t_ = { s_ + n\alpha }
$$

알파값으로 원주율을, s0값으로 0을 사용하게 되면, 수열은 다음과 같은 형태가 됨
0.618, 0.236, 0.854, 0.472, 0.090, 0.708, 0.327, 0.944, 0.562, 0.180, 0.798, 0.416, 0.034, 0.652, 0.271, 0.888, ...

품질 평가 기준

R2

R-sequence 알고리즘 평가

Random의 (주의해야 할) 응용 - Shuffling

image
image

Fisher-Yates algorithm

image

Random의 (잘못된) 응용 - Unique ID 발급

소프트웨어 개발자의 주의사항

in Java

in Linux

image

공통

참고자료