범위 내에서 난수를 생성하려면 어떻게해야합니까?
답변
당신은 시도 할 수 있습니다
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;
}
답변
정수와 복식을 생성 하는 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);