요즘 너무 오래간만에 포스팅이다.
블로그를 옮길까....도 생각하다보니...더 글 올리는 텀이 길어지는것 같기도 하다.
일단..지금 한참 바쁘니 거두절미하고..본론부터 써 내려 가도록 하자.
예전 C에서 rand() 함수를 사용할때는
seed값을 미리 주어서 사용하거나, 일정 범위내의 random값을 사용하는 경우에는 rand()%X를 사용하기도 했다.
(단, seed값이 같다면 매번 같은 패턴으로 난수가 발생하고, 그래서 seed값을 시간을 사용한다고 해도 빠른 루프를 돌리거나 하면..같은 수가 나오는 치명적인 약점이 있긴 하다.)
하지만 C#은...정말 간단하면서도 강력한것 같다. (but, 난 C가 더 좋긴 하다...!!)
Random rNum = new Random();
제공하는 메서드...
rNum.Next(); //범위가 없는 랜덤 값
rNum.Next(int max); //상한 값 지정
rNum.Next(int min, int max); //하한과 상한 값 지정
※ 난수의 하한은 난수에 포함되지만 상한은 절대 포함되지는 않는다.
ex) 1~100까지의 난수를 원한다면, rNum.Next(1,101);을 사용.
두 가지를 비교해 보자면,
case 1) 빠른 루프를 돌려도 그 값이 항상 변하는 난수
Random rNum = new Random();
for (int i = 0; i < 10; i++)
{
Console.WriteLine("{0}", rNum .Next());
}
case 2) 빠른 루프를 돌리면 (기본 seed로 시간을 사용하기에) 그 값이 항상 같은 값을 발생하는 난수
for (int i = 0; i < 10; i++)
{
Random rNum = new Random();
Console.WriteLine("{0}", rNum .Next());
}
자세한것은 MSDN이다.!!!
http://msdn.microsoft.com/ko-kr/library/system.random_methods(VS.80).aspx
[출처] C# Random Class 사용하기|작성자 하동하동
'[ Program ] > C#' 카테고리의 다른 글
클래스객체정의 (0) | 2012.09.17 |
---|---|
데이터베이스 연결 (0) | 2012.09.17 |
WCF Configuration ( Appconfig 스키마 구성표) (0) | 2012.09.14 |
C#에서 log4net 사용하기 (0) | 2012.09.11 |
NET & C# 에서 log4net 사용하기 (0) | 2012.09.11 |
댓글