C# 1和0的数组
如何在C语言中生成零和一的数组?数组的长度为n,正好是k个单位,其中k您需要使用Random实例的函数来获取随机数,例如,使用Random.NextDouble,然后使用这些数字来确定数组的每个元素是零还是一。否则,正如您可能期望的那样,您的代码每次都会产生相同的结果C# 1和0的数组,c#,arrays,random,C#,Arrays,Random,如何在C语言中生成零和一的数组?数组的长度为n,正好是k个单位,其中k您需要使用Random实例的函数来获取随机数,例如,使用Random.NextDouble,然后使用这些数字来确定数组的每个元素是零还是一。否则,正如您可能期望的那样,您的代码每次都会产生相同的结果 static void InitIntArray(int[] arr, int k){ Random rnd = new Random(); for(int i = 0; i < arr.Length; i+
static void InitIntArray(int[] arr, int k){
Random rnd = new Random();
for(int i = 0; i < arr.Length; i++)
{
//Probability this array element is a 1
double p = (double)k / (arr.Length-i);
if(rnd.NextDouble() < p)
{
arr[i] = 1;
k--;
}
else
{
arr[i] = 0;
}
}
}
展示您编写的一些代码,并告诉我们您为什么要这样做。
static void InitIntArray(int[] arr, int k){
Random rnd = new Random();
for(int i = 0; i < arr.Length; i++)
{
//Probability this array element is a 1
double p = (double)k / (arr.Length-i);
if(rnd.NextDouble() < p)
{
arr[i] = 1;
k--;
}
else
{
arr[i] = 0;
}
}
}