• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 196
  • Last Modified:

Generating the random numbers using C#

Hi,

Can you please provide me the working code in C# to generate the random numbers for the following requirements:

1) The Random numbers will have only Alphanumeric values (1,2,3,A,B,c...etc).
2) The function should accept the precision. i.e how much will be the length of the random numbers.
3) The function should accept the input for the count. For example if I input 3 with precision 8. The the code should generate three random numbers, each of length 8.
4) The output should be in the format: Number 1: ABCDEFGH, Number 2:ZZZZZZZ and so on

How can I do this?

Thanks for the help.

Run2004
0
run2004
Asked:
run2004
  • 2
  • 2
2 Solutions
 
adatheladCommented:
Hi run2004,

This function will return an array of random numbers as you require:
private string[] GenerateRandomNumbers(int Count, int Precision)
        {
            string[] numbers = new String[Count];
            System.Text.StringBuilder numberBuilder = new System.Text.StringBuilder();
            string newNumber;

            for (int loop=0; loop < Count; loop++)
            {
                numberBuilder.Length = 0;
                while (numberBuilder.ToString().Length < Precision)
                {
                    numberBuilder.Append(System.Guid.NewGuid().ToString().Replace("-", ""));
                }

                newNumber = numberBuilder.ToString();
                if (newNumber.Length > Precision)
                {
                    newNumber = newNumber.Substring(0, Precision);
                }

                numbers[loop] = newNumber;
            }

            return numbers;
        }

0
 
adatheladCommented:
To get the output in the format "Number 1: .....", you can use this version:
private string GenerateRandomNumbers(int Count, int Precision)
        {
            System.Text.StringBuilder numberBuilder = new System.Text.StringBuilder();
            System.Text.StringBuilder numberString = new System.Text.StringBuilder();
            string newNumber;

            for (int loop=0; loop < Count; loop++)
            {
                numberBuilder.Length = 0;
                while (numberBuilder.ToString().Length < Precision)
                {
                    numberBuilder.Append(System.Guid.NewGuid().ToString().Replace("-", ""));
                }

                newNumber = numberBuilder.ToString();
                if (newNumber.Length > Precision)
                {
                    newNumber = newNumber.Substring(0, Precision);
                }

                numberString.Append("Number ");
                numberString.Append((loop + 1).ToString());
                numberString.Append(": ");
                numberString.Append(newNumber);

                if ((loop+1) < Count) { numberString.Append(", "); }
            }

            return numberString.ToString();
        }
0
 
run2004Author Commented:
This is a good one, but I just wanted to know how good it is to use the random class to generate the random numbers. There is one more observation, the output doesn't contain upper case letters. Is there a way to have both in one place.

Thanks for the fast response.
0
 
Expert1701Commented:
Here is a sample of output,

  T9bhygXK
  by1Gl7aW
  bnhMe6iZ

produced by this program:

  static Random random = new Random();

  static void Main()
  {
    foreach (string result in GenerateRandoms(3, 8))
      Console.WriteLine(result);

    Console.ReadLine();
  }

  static string[] GenerateRandoms(int number, int precision)
  {
    string[] list = new string[number];
   
    for (int i = 0; i < number; i++)
      list[i] = GenerateRandom(precision);
   
    return list;
  }

  static string GenerateRandom(int precision)
  {
    char[] list = new char[precision];

    for (int i = 0; i < precision; i++)
    {
      int next = random.Next() % 62;
      if (next < 10)
        list[i] = (char)('0' + next);
      else if (next < 36)
        list[i] = (char)('A' + next - 10);
      else
        list[i] = (char)('a' + next - 36);
    }

    return new string(list);
  }
0
 
Expert1701Commented:
run2004, did the sample application I posted meet your requirements?
0

Featured Post

The new generation of project management tools

With monday.com’s project management tool, you can see what everyone on your team is working in a single glance. Its intuitive dashboards are customizable, so you can create systems that work for you.

  • 2
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now