Java实现对m个元素的大集合分成n个小集合,允许有余数的存在,输出每个小集合中元素在大集合中的下标
时间: 2024-04-24 15:23:09 浏览: 60
您好!对于这个问题,您可以使用以下Java代码实现:
```java
import java.util.ArrayList;
import java.util.List;
public class DivideSet {
public static void main(String[] args) {
int[] bigSet = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; // 大集合
int n = 3; // 小集合个数
List<List<Integer>> smallSets = divideSet(bigSet, n);
for (int i = 0; i < smallSets.size(); i++) {
System.out.println("小集合 " + (i + 1) + ":");
List<Integer> smallSet = smallSets.get(i);
for (int j = 0; j < smallSet.size(); j++) {
int index = smallSet.get(j);
System.out.println("元素 " + bigSet[index] + " 的下标为 " + index);
}
System.out.println();
}
}
private static List<List<Integer>> divideSet(int[] bigSet, int n) {
List<List<Integer>> smallSets = new ArrayList<>();
int m = bigSet.length;
int quotient = m / n; // 商
int remainder = m % n; // 余数
int start = 0;
for (int i = 0; i < n; i++) {
int size = quotient + (i < remainder ? 1 : 0);
List<Integer> smallSet = new ArrayList<>();
for (int j = start; j < start + size; j++) {
smallSet.add(j);
}
smallSets.add(smallSet);
start += size;
}
return smallSets;
}
}
```
这段代码中,我们首先定义了一个大集合 `bigSet`,然后指定了小集合的个数 `n`。接着,我们调用 `divideSet` 方法将大集合分成小集合,并将结果存储在 `smallSets` 中。最后,我们遍历 `smallSets`,输出每个小集合中元素在大集合中的下标。
希望这可以帮助到您!如果您有任何其他问题,请随时提问。
阅读全文