C# 1和0的数组

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+

如何在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++)
    {
        //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;
        }
    }
}