一个关于数组的问题

1、一个整形数组,假如长度为len

2、一个随机产生1和0这两个整数的随机算法,这个方法为

int R()

{

//省略实现,不需要关心如何实现此方法

}

3、现在需要在这个整数数组中随机分配k个1(k<len),其它都分配为0


这个怎样实现?


心有法竹
浏览 807回答 2
2回答

侃侃尔雅

int count_1 = 0; int count_0 = 0; int[] arr = new int[len]; for (int i = 0; i < 10; i++) { int value = R(); if (count_1 < k && count_0 < len - k) { if (value == 1) count_1++; if (value == 0) count_0++; arr[i] = value; } else { if (count_1 == k) { arr[i] = 0; } else { arr[i] = 1; } } }

慕田峪7331174

你这个用不到你的R()方法。你这个应该是在len里面随机选k个位置,选中的是1,没选中的是0。
打开App,查看更多内容
随时随地看视频慕课网APP