[C#] C #을 사용하여 범위 내에서 난수 생성

범위 내에서 난수를 생성하려면 어떻게해야합니까?



답변

당신은 시도 할 수 있습니다

Random r = new Random();
int rInt = r.Next(0, 100); //for ints
int range = 100;
double rDouble = r.NextDouble()* range; //for doubles

보세요

Random 클래스 , Random.Next 메서드 (Int32, Int32)Random.NextDouble 메서드


답변

아래 코드를 사용해보십시오.

Random rnd = new Random();
int month = rnd.Next(1, 13); // creates a number between 1 and 12
int dice = rnd.Next(1, 7); // creates a number between 1 and 6
int card = rnd.Next(52); // creates a number between 0 and 51


답변

다음과 같은 것 :

var rnd = new Random(DateTime.Now.Millisecond);
int ticks = rnd.Next(0, 3000);


답변

사용하다:

Random r = new Random();
 int x= r.Next(10);//Max range


답변

미래의 독자들을 위해 범위 내의 난수를 원한다면 다음 코드를 사용하십시오.

public double GetRandomNumberInRange(double minNumber, double maxNumber)
{
    return new Random().NextDouble() * (maxNumber - minNumber) + minNumber;
}

C # 최소값과 최대 값 사이의 임의의 이중

코드 샘플


답변

정수와 복식을 생성 하는 Random Class 외에도 다음을 고려하십시오.


답변

다음은 Darrelk answer 에서 업데이트 된 버전입니다 . C # 확장 메소드를 사용하여 구현됩니다 . 이 메소드가 호출 될 때마다 메모리 ( new Random () )를 할당 하지 않습니다 .

public static class RandomExtensionMethods
{
    public static double NextDoubleRange(this System.Random random, double minNumber, double maxNumber)
    {
        return random.NextDouble() * (maxNumber - minNumber) + minNumber;
    }
}

사용법 (RandomExtensionMethods 클래스가 포함 된 네임 스페이스를 가져와야 함) :

var random = new System.Random();
double rx = random.NextDoubleRange(0.0, 1.0);
double ry = random.NextDoubleRange(0.0f, 1.0f);
double vx = random.NextDoubleRange(-0.005f, 0.005f);
double vy = random.NextDoubleRange(-0.005f, 0.005f);