Подтвердить что ты не робот

Как создать случайное 10-значное число в С#?

Я использую С#, и мне нужно создать случайное 10-значное число. До сих пор мне повезло только найти примеры с минимальным максимальным значением. Как бы я начал генерировать случайное число, которое составляет 10 цифр, которое может начинаться с 0 (сначала я надеялся на 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;
    }
4b9b3361

Ответ 1

Если вы хотите десять цифр, но вы можете начинать с 0, то это звучит так, как будто вы хотите сгенерировать строку, а не длинное целое.

Создайте 10-значную строку, в которой каждый символ случайным образом выбран из '0'.. '9'.

Ответ 2

попробуйте (хотя и не совсем точно)

Random R = new Random();

return ((long)R.Next (0, 100000 ) * (long)R.Next (0, 100000 )).ToString ().PadLeft (10, '0');

Ответ 3

Используйте это для создания случайных цифр с заданной длиной

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

Ответ 4

(10000000009999999999) не является случайным - вы утверждаете, что он не может начинаться с 1, поэтому вы уже сократили свою целевую базу на 10%.

Случайный - это двойной, поэтому, если вы хотите целое число, умножьте его на 1,000,000,000, затем опустите цифры после десятичной точки.

Ответ 5

private void button1_Click(object sender, EventArgs e)
{
   Random rand = new Random();
   long randnum2 = (long)(rand.NextDouble() * 9000000000) + 1000000000;
   MessageBox.Show(randnum2.ToString());
}

Ответ 6

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

Ответ 7

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

Ответ 8

Чтобы получить 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)

Ответ 9

Я попытался написать быстрый:

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

Ответ 10

Random random = new Random();
string randomNumber = string.Join(string.Empty, Enumerable.Range(0, 10).Select(number => random.Next(0, 9).ToString()));

Ответ 11

Я придумал этот метод, потому что я не хочу использовать метод 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));
}

надеюсь, что это поможет.

Ответ 12

Чтобы создать случайное 10-значное число в С#

Random RndNum = new Random();   

int RnNum = RndNum.Next(1000000000,9999999999);