web-dev-qa-db-ja.com

C#でランダムな10桁の数字を生成する方法は?

C#を使用していますが、ランダムな10桁の数字を生成する必要があります。これまでのところ、最小最大値を示す例を見つけることができました。 0で始まる10桁の乱数をどのように生成しますか(最初はrandom.Next(1000000000,9999999999)を期待していましたが、これが望んでいることを疑っています)。

私のコードは今このように見えます:

    [WebMethod]
    public string GenerateNumber()
    {
        Random random = new Random();
        return random.Next(?);
    }

**アップデートはそのようになりました、

    [WebMethod]
    public string GenerateNumber()
    {
        Random random = new Random();
        string r = "";
        int i;
        for (i = 1; i < 11; i++)
        {
            r += random.Next(0, 9).ToString();
        }
        return r;
    }
20

10桁が必要で、で始まるを許可すると、長い整数ではなく文字列を生成したいように聞こえます。

各文字が '0' .. '9'からランダムに選択される10文字の文字列を生成します。

5
Ray Toal

これを使用して、指定された長さのランダムな数字を作成します

 public string RandomDigits(int length)
    {
        var random = new Random();
        string s = string.Empty;
        for (int i = 0; i < length; i++)
            s = String.Concat(s, random.Next(10).ToString());
        return s;
    }
11
A Ghazal

試してください(絶対に正確ではありません)

Random R = new Random();

return ((long)R.Next (0, 100000 ) * (long)R.Next (0, 100000 )).ToString ().PadLeft (10, '0');
10
Yahia
private void button1_Click(object sender, EventArgs e)
{
   Random Rand = new Random();
   long randnum2 = (long)(Rand.NextDouble() * 9000000000) + 1000000000;
   MessageBox.Show(randnum2.ToString());
}
3
DrWeather

ループ(または他の長さの数字)なしで10桁の数字を取得するには

_private static readonly Random _rdm = new Random();
private string PinGenerator(int digits)
{
   if (digits <= 1) return "";

   var _min = (int)Math.Pow(10, digits - 1);
   var _max = (int)Math.Pow(10, digits) - 1;
   return _rdm.Next(_min, _max).ToString();
}
_

この関数は、n番目の数字の下限と上限を計算しました。

10桁の番号を生成するには、次のように使用します。

PinGenerator(10)

3
Menelaos Vergis

(1000000000,9999999999)はランダムではありません-1から始めることはできないので、ターゲットベースを既に10%削減しています。

Randomはdoubleなので、整数が必要な場合は、1,000,000,000を乗算し、小数点以下の桁を削除します。

3
Unsliced
   //Ten digits 
   public string CreateRandomNumber
   {
        get
        {
            //returns 10 digit random number (Ticks returns 16 digit unique number, substring it to 10)
            return DateTime.UtcNow.Ticks.ToString().Substring(8); 
        }
    }
1
Ravi Ganesan

私は速いものを書き込もうとしました:

private int GetNDigitsRandomNumber(int digits)
{
    var min = 1;
    for (int i = 0; i < digits-1; i++)
    {
          min *= 10;
    }
    var max = min * 10;

    return _rnd.Next(min, max);
}
1
HamedH

Randomメソッドを使用したくないので、このメソッドを思いつきました。

public static string generate_Digits(int length)
{
    var rndDigits = new System.Text.StringBuilder().Insert(0, "0123456789", length).ToString().ToCharArray();
    return string.Join("", rndDigits.OrderBy(o => Guid.NewGuid()).Take(length));
}

お役に立てれば。

1
Chtiwi Malek
private static Random random = new Random((int)DateTime.Now.Ticks);//thanks to McAden

public long LongBetween(long maxValue, long minValue)
{
    return (long)Math.Round(random.NextDouble() * (maxValue - minValue - 1)) + minValue;
}
1
mohghaderi
Random random = new Random();
string randomNumber = string.Join(string.Empty, Enumerable.Range(0, 10).Select(number => random.Next(0, 9).ToString()));
0
Oleg