3

我希望仅为每个数组生成 0 或 1,例如:

int[] x = new int [10];

我想生成 0 或 1 的 10 个数字,而不应该全是 0

只是这样:

Random binaryrand = new Random(2);

谢谢你。

4

3 回答 3

3

你可以用这样的Random.Next(Int32, Int32)方法来做到这一点;

int[] x = new int[10];
Random r = new Random();

while (x.Any(item => item == 1) == false)
{
    for (int i = 0; i < x.Length; i++)
    {
         x[i] = r.Next(0, 2);
    }
}

for (int i = 0; i < x.Length; i++)
{
   Console.WriteLine(x[i]);
}

示例输出;

0
0
0
1
1
1
0
1
1
0

这里一个DEMO.

请记住,在Random.Next(Int32, Int32)方法上,下限是包容性的,但上限是排斥性的。

于 2013-07-22T09:05:13.077 回答
2

你的来电

Random binaryrand = new Random(2);

创建一个 Random 生成器seed=2,每次运行此代码时,它将生成相同的数字序列。与生成数字的2范围无关。

采用

 Random binaryrand = new Random();  // auto seed

 ...

    int x = binaryrand.Next(2);
于 2013-07-22T09:14:51.220 回答
0

这也确保了不是所有的都是 0

Random binaryrand = new Random();
List<int> l = new List<int>();

while (l.Find(x => x == 1) != 1)
{
   for (int i = 0; i < 10; i++)
   {
       l.Add(binaryrand.Next(0, 2));
   }
 }
于 2013-07-22T09:17:53.870 回答