본문 바로가기

개발/C#

[C#] Random 함수에 seed 초기화

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