2011-04-17 85 views
0

我该如何实现这个,所以它始终是十位数字,我将如何存储n和r,循环10次,并存储每个循环呢?随机数源,循环和存储

循环随机发生器10x创建2x10个10位数的数字。

namespace ConsoleApplication1 
{ 
    class Program 
    { 
     static void Main() 
     { 

      F(); 
      F(); 
     } 

     static Random _r = new Random(); 
     static void F() 
     { 

      int n = _r.Next(); 
      int r = _r.Next(); 

      Console.WriteLine(n); 
      Console.WriteLine(r); 
      Console.ReadLine(); 
     } 
} 
+1

环比什么?问题是非常不清楚的。 – BrokenGlass 2011-04-17 16:05:43

+0

如何存储一个循环? – 2011-04-17 16:06:13

+0

抱歉循环随机发生器需要将其循环10x以创建2x10多个10位数字 – 2011-04-17 16:06:29

回答

3

像这样的东西可能是你在找什么?

虽然我并不热衷于命名约定,我不知道这些申请,所以不能准确地为它们命名贴切自己...

static int[] randomNumberArray0 = new int[10]; 
static int[] randomNumberArray1 = new int[10]; 
static Random random = new Random(); 

static void PopulateRandomNumberArrays() 
{ 
    for (int i = 0; i < 10; i++) 
    { 
     randomNumberArray0[i] = random.Next(); 
     randomNumberArray1[i] = random.Next(); 
    } 
} 

更新:

要执行该方法然后进一步输出在稍后的时间的值,尝试:

static void PrintRandomNumberArrayValues(int[] array) 
{ 
    for (int i = 0; i < array.Length; i++) 
    { 
     Console.WriteLine("{0}", array[i]); 
    } 
    Console.WriteLine(); 
} 

static void Main() 
{ 
    PopulateRandomNumberArrays(); 

    PrintRandomNumberArrayValues(randomNumberArray0); 
    PrintRandomNumberArrayValues(randomNumberArray1); 

    Console.WriteLine("Press any key to exit..."); 
    Console.ReadKey(); 
} 

输出会看起来像这样:

2044334973 
153458690 
1271210885 
734397658 
746062572 
162210281 
1091625245 
123317926 
410432738 
989880682 

866647035 
481104609 
834599031 
1153970253 
94252627 
1041485031 
1934449666 
414036889 
1886559958 
2083967380 

进一步更新:

对于所生成的值被约束到的长度为10位数字,这意味着最小生成的值必须大于999999999较大并且,由于int具有2,147,483,647一个最大值,小于或等于,所以:

for (int i = 0; i < 10; i++) 
{ 
    randomNumberArray0[i] = random.Next(1000000000, int.MaxValue); 
    randomNumberArray1[i] = random.Next(1000000000, int.MaxValue); 
} 

我有一种感觉,尽管如此,我仍然可能不会满足你的需求,因为我接下来会看到数字应该能够表示为0000000001,例如 - 让我们来看看。

另一个更新:

,因为我以为,数字的价值不应该被限制到我们指定的范围,而只是输出格式正确;从而产生回复到我原来的建议和印刷改变为这样:

Console.WriteLine("{0:D10}", array[i]); 
+0

对象引用错误? – 2011-04-17 16:15:04

+0

我的错误 - 缺少静态修饰符:更新了要反映的答案。 – 2011-04-17 16:17:58

+0

这没有做任何事情? – 2011-04-17 16:21:35

1

我想你可以使用一个元组列表来存储和返回结果:

static List<Tuple<int,int>> F() 
{ 
    var results = new List<Tuple<int,int>>(); 
    for (int i = 0; i < 10; i++) 
    { 
     results.Add(new Tuple<int, int>(_r.Next(), _r.Next())); 
    } 
    return results; 
}