java代码带注释完整版写一个口袋中放有12个球,已知其中3个是红的,3个是白的,6个是黑的,现从中任取8个,问共有多少种可能的颜色搭配?
时间: 2023-11-12 13:08:26 浏览: 92
五种不同色小球中选三种不同色小球的选法
4星 · 用户满意度95%
```
public class BallCombination {
public static void main(String[] args) {
int redCount = 3; // 红球的数量
int whiteCount = 3; // 白球的数量
int blackCount = 6; // 黑球的数量
int selectCount = 8; // 取出的球的数量
// 计算红球、白球、黑球分别取几个可以组成8个球的情况
int redCombination = combination(redCount, selectCount);
int whiteCombination = combination(whiteCount, selectCount - redCount);
int blackCombination = combination(blackCount, selectCount - redCount - whiteCount);
// 计算颜色搭配的总数
int totalCombination = redCombination * whiteCombination * blackCombination;
System.out.println("共有 " + totalCombination + " 种可能的颜色搭配");
}
/**
* 计算从 n 个元素中选取 m 个元素的组合数
* @param n 元素总数
* @param m 选取的元素数量
* @return 组合数
*/
private static int combination(int n, int m) {
int result = 1;
for (int i = 1; i <= m; i++) {
result = result * (n - i + 1) / i;
}
return result;
}
}
```
注释已经写得比较详细了,主要思路就是计算每种颜色可以取到的数量,然后乘起来就是总的颜色搭配数量。`combination` 方法实现了组合数的计算,可以在其他地方复用。
阅读全文