반응형
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)
사용:
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);
정수를 생성하고 두 배를 생성하는 랜덤 클래스 외에 다음을 고려합니다.
스택 오버플로 질문 (U)Int64 및 소수의 (의사) 랜덤 제약 값 생성
언급URL : https://stackoverflow.com/questions/3975290/produce-a-random-number-in-a-range-using-c-sharp
반응형
'programing' 카테고리의 다른 글
| 프롬프트 없이 로그인하는 방법은 무엇입니까? (0) | 2023.05.12 |
|---|---|
| MongoDB에서 두 개의 필드가 있는 고유 제약 조건 (0) | 2023.05.12 |
| Xcode 10.2에서 "SWIFT_VERSION '3.0'이 지원되지 않습니다. 지원되는 버전은 4.0, 4.2, 5.0" 오류를 해결하는 방법은 무엇입니까? (0) | 2023.05.12 |
| Excel: 놀라운 축소 및 확장 제어 (0) | 2023.05.12 |
| MongoDB Realm을 올바르게 이해합니까? (0) | 2023.05.12 |