programing

C#을 사용하여 범위에서 난수를 생성

kakaobank 2023. 5. 12. 22:36
반응형

C#을 사용하여 범위에서 난수를 생성

범위 내에서 임의의 숫자를 생성하려면 어떻게 해야 합니까?

시도해 보세요

//for integers
Random r = new Random();
int rInt = r.Next(0, 100);

//for doubles
int range = 100;
double rDouble = r.NextDouble()* range;

보다

랜덤 클래스, 랜덤.다음 방법(Int32, Int32)랜덤.넥스트 더블 메소드

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

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);

범위에 임의의 번호를 지정하려면 다음 코드를 사용하십시오.

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

용도:

Random r = new Random();    
double num1 = GetRandomNumberInRange(r, 50, 100)

C# 최소값과 최대값 사이의 랜덤 이중

코드샘플

사용:

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

Darrelk 답변에서 업데이트된 버전입니다.C# 확장 방법을 사용하여 구현됩니다.이 메서드를 호출할 때마다 메모리(새 랜덤()))를 할당하지 않습니다.

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

사용량(랜덤이 포함된 네임스페이스를 가져오십시오.확장 메서드 클래스):

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);

정수를 생성하고 두 배를 생성하는 랜덤 클래스 외에 다음을 고려합니다.

언급URL : https://stackoverflow.com/questions/3975290/produce-a-random-number-in-a-range-using-c-sharp

반응형