수색…


통사론

  • 무작위 ()

  • 랜덤 (int 시드)

  • int 다음 ()

  • int 다음 (int maxValue)

  • int 다음 (int minValue, int maxValue)

매개 변수

매개 변수 세부
난수 생성을위한 값. 설정되지 않은 경우 기본값은 현재 시스템 시간에 의해 결정됩니다.
최소값 생성 된 숫자는이 값보다 작을 수 없습니다. 설정되지 않은 경우 기본값은 0입니다.
maxValue 생성 된 숫자는이 값보다 작습니다. 설정되지 않은 경우 기본값은 Int32.MaxValue 입니다.
반환 값 임의의 값을 가진 숫자를 반환합니다.

비고

시스템에 의해 생성 된 임의의 시드는 모든 다른 실행에서 동일하지 않습니다.

같은 시간에 생성 된 종자는 동일 할 수 있습니다.

무작위 int 생성

이 예제는 0에서 2147483647 사이의 임의의 값을 생성합니다.

Random rnd = new Random();
int randomNumber = rnd.Next();

무작위 배수 생성

0과 1.0 사이의 난수를 생성하십시오. (1.0 제외)

Random rnd = new Random();
var randomDouble = rnd.NextDouble();

지정된 범위의 무작위 int를 생성합니다.

minValuemaxValue - 1 사이의 임의의 숫자를 생성하십시오.

Random rnd = new Random();
var randomBetween10And20 = rnd.Next(10, 20);

동일한 난수 시퀀스 반복 생성

동일한 시드로 Random 인스턴스를 만들 때 동일한 숫자가 생성됩니다.

int seed = 5;
for (int i = 0; i < 2; i++)
{
   Console.WriteLine("Random instance " + i);
   Random rnd = new Random(seed);
   for (int j = 0; j < 5; j++)
   {
      Console.Write(rnd.Next());
      Console.Write(" ");
   }

   Console.WriteLine();
}

산출:

Random instance 0
726643700 610783965 564707973 1342984399 995276750
Random instance 1
726643700 610783965 564707973 1342984399 995276750

다른 종자와 동시에 여러 무작위 클래스 만들기

동시에 생성 된 두 개의 임의 클래스는 동일한 시드 값을가집니다.

System.Guid.NewGuid().GetHashCode() 는 같은 시간에 다른 시드를 얻을 수 있습니다.

Random rnd1 = new Random();
Random rnd2 = new Random();
Console.WriteLine("First 5 random number in rnd1");
for (int i = 0; i < 5; i++)
    Console.WriteLine(rnd1.Next());

Console.WriteLine("First 5 random number in rnd2");
for (int i = 0; i < 5; i++)
    Console.WriteLine(rnd2.Next());

rnd1 = new Random(Guid.NewGuid().GetHashCode());
rnd2 = new Random(Guid.NewGuid().GetHashCode());
Console.WriteLine("First 5 random number in rnd1 using Guid");
for (int i = 0; i < 5; i++)
    Console.WriteLine(rnd1.Next());
Console.WriteLine("First 5 random number in rnd2 using Guid");
for (int i = 0; i < 5; i++)
    Console.WriteLine(rnd2.Next());

다른 종자를 얻기위한 또 다른 방법은 다른 Random 인스턴스를 사용하여 종자 값을 검색하는 것입니다.

Random rndSeeds = new Random();
Random rnd1 = new Random(rndSeeds.Next());
Random rnd2 = new Random(rndSeeds.Next());

또한 rndSeeds 의 시드 값만 설정하여 모든 Random 인스턴스의 결과를 제어 할 수 있습니다. 다른 모든 인스턴스는 결정적으로 단일 시드 값에서 파생됩니다.

임의의 문자 생성

주어진 범위의 숫자에 대해 Next() 오버로드를 사용하여 az 사이에 임의의 문자를 생성 한 Next() 결과 intchar 로 변환합니다.

Random rnd = new Random();
char randomChar = (char)rnd.Next('a','z'); 
//'a' and 'z' are interpreted as ints for parameters for Next()

최대 값의 백분율 인 숫자를 생성하십시오.

난수에 대한 공통적 인 필요성은 최대 값의 X% 인 수를 생성하는 것입니다. 이것은 NextDouble() 의 결과를 백분율로 처리하여 수행 할 수 있습니다.

var rnd = new Random();
var maxValue = 5000;
var percentage = rnd.NextDouble();
var result = maxValue * percentage; 
//suppose NextDouble() returns .65, result will hold 65% of 5000: 3250.


Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow