我希望仅为每个数组生成 0 或 1,例如:
int[] x = new int [10];
我想生成 0 或 1 的 10 个数字,而不应该全是 0
只是这样:
Random binaryrand = new Random(2);
谢谢你。
你可以用这样的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)
方法上,下限是包容性的,但上限是排斥性的。
你的来电
Random binaryrand = new Random(2);
创建一个 Random 生成器seed=2
,每次运行此代码时,它将生成相同的数字序列。与生成数字的2
范围无关。
采用
Random binaryrand = new Random(); // auto seed
...
int x = binaryrand.Next(2);
这也确保了不是所有的都是 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));
}
}