随机数0或1

时间:2013-07-22 09:02:40

标签: c# random

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

int[] x = new int [10];

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

只有这样:

Random binaryrand = new Random(2);

谢谢。

3 个答案:

答案 0 :(得分: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)方法上,下限是包含,但上限是独占

答案 1 :(得分:2)

您的电话

Random binaryrand = new Random(2);

创建一个带seed=2的随机生成器,每次运行此代码时都会产生相同的数字序列。 2与生成的数字范围无关。

使用

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

 ...

    int x = binaryrand.Next(2);

答案 2 :(得分: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));
   }
 }