C나 C++ 같은 경우 Random함수를 쓰기전에 동일한 Random 값의 확률을 줄이기 위해
seed를 time(null) 로 해주는데 C#에서도 비슷하게 해 줄 수 있다.
<1 ~ 100 사이에 Random한 숫자 10개 출력하기>
for(int i = 0; i < 10; i++) { Random r = new Random(unchecked((int)DateTime.Now.Ticks) + i); int num = r.Next(100) Console.WriteLine(num) }
보는것과 같이 한번 숫자를 생성할 때 마다 Random class를 새로 생성해 주면서
인자로 현재 초에 i를 더해주면서 seed를 다르게 초기화하여 랜덤 분포의 중복을 피하고 있다.
사실상.. 결과에는 별 차이는 없어 보이지만...
출처 : http://han1000jae.blog.me/80108345226
'개발 > C#' 카테고리의 다른 글
[C#] 숫자 앞에 0 채우기 (0) | 2013.05.23 |
---|