我希望为每个数组生成0或1,如:
int[] x = new int [10];
我想生成10个数字0或1,不应该全0
只有这样:
Random binaryrand = new Random(2);
谢谢。
答案 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));
}
}