web-dev-qa-db-ja.com

C#の範囲から乱数を生成する方法

そのため、ユーザーが設定したパラメーターに基づいて乱数を生成し、基本的な数式を作成する必要があります。 3つのオプションがあります。 1桁、2桁、または3桁の数字。したがって、それに基づいて、0から9、0から99、および0から100の乱数を生成する必要があります。

これまで、Randomクラスについて読みました。これは私の貧弱な試みです:

Random rnd = new Random();
int value = 0;

if (digits == 1)
{
    rnd.Next(value);
    q1Lbl.Text = value.ToString();
}
2
Sal

Random.Next() のこのオーバーロードが必要です:

public virtual int Next(
    int minValue,
    int maxValue
)

どこ:

minValue =返される乱数の包括的下限。

maxValue =返される乱数の排他的な上限。 maxValueはminValue以上である必要があります。

パラメータの説明にあるinclusiveおよびexclusiveという単語に注意してください。これは、最小値を可能な値で返すことができる一方で、最大値は不可能可能であることを意味します。

これは、戻り値の説明でさらに明確になります。

戻り値-minValue以上maxValue未満の32ビット符号付き整数。つまり、戻り値の範囲にはminValueが含まれますが、maxValueは含まれません。 minValueがmaxValueと等しい場合、minValueが返されます。

たとえば、0〜9(両端を含む)の1桁の値を取得するには、次を使用します。

int value = rnd.Next(0, 10); // return a value between 0 and 9 inclusive

2桁を取得するには、次を使用します。

int value = rnd.Next(10, 100); // return a value between 10 and 99 inclusive

最後に、3桁の数字を取得するには、次を使用します。

int value = rnd.Next(100, 1000); // return a value between 100 and 999 inclusive
9
Idle_Mind
Random rnd = new Random();
int single = rnd.Next(1, 10);  // 1 ~9
int double = rnd.Next(1, 100);    // 1~99
int triple = rnd.Next(1,101);      // 1~100

値を複数回達成したい場合はループします

3
Hank

Nextメソッドのオーバーロードがあり、範囲を渡すだけで済みます。

Random rnd = new Random();
rnd.Next(1,20); //Gives you a number between 1 and 20

ここにドキュメント全体があります https://www.google.com.co/search?q=next+random+c%23&oq=next+random&aqs=chrome.1.69i57j0l5.3144j0j7&sourceid=chrome&ie=UTF-8