본문 바로가기
C#/Common

[C#] Random Class 사용

by 샤나엘 2018. 3. 20.
반응형

C# 에서 난수를 사용할 경우가 생겨서 정리합니다.

 

C#에서는 난수 발생을 위해 Random Class를 재공합니다.

 

시간에 따라 달라지는 시드 값을 사용해서 난수를 발생시키는데,

너무 빠른 시간에 계산되어 질 경우에는 동일한 값을 생성하는 약점도 존재합니다.

 

아래와 같이 1 ~ 100 사이의 난수를 10개 생성하기위한 구문을 작성하고 결과를 확인해봤습니다.



 

[예제 1 : 1 ~ 100 사이의 난수 발생]

            
            for (int i = 1; i <= 10; i++)
            {
                Random rand = new Random();

                double r = rand.Next(1, 101);

                text += r.ToString() + "   ";
            }

 

 

[예제 1 결과]

 

 

위 결과와 같이 Random Class는 시간에 따라 달라지는 시드 값을 사용하는데, 동일시간에 계산이 되게 되면 동일한 난수를 생성하게 됩니다.

 

 

이럴 경우에는 Random 클래스를 for문 밖에서 생성하던지, 아니면 시드 값을 다르게 설정해서 구현해야 합니다.

 

아래는 예제 1번소스에서 Random 클래스를 for문 밖에서 생성해서 실행하는 예제입니다.



 

[예제 2 : 1 ~ 100 사이의 난수 발생]

    
            Random rand = new Random();

            for (int i = 1; i <= 10; i++)
            {
                double r = rand.Next(1, 101);

                text += r.ToString() + "   ";
            }

 

 

[예제 2 결과]

 

 

위와 같이 다른값이 나오는 것을 확인할 수 있습니다.

 

 

Random 클래스 사용시 위 사항에 주의해서 사용하시기 바랍니다.

반응형

'C# > Common' 카테고리의 다른 글

C# Dictionary sort 정렬하는 방법  (0) 2021.06.07
[C#] Enum foreach - Enum(열거형) 반복문 사용법  (0) 2018.04.05
[C#] Dictionary 사용예제  (0) 2018.04.02
[C#] DataTable 사용법  (0) 2018.03.28
[C#] Color  (0) 2018.03.20

댓글