三色球问题
问题描述
若有一个口袋中放有12个球,其中有3个红色的,3个黄色的,6个绿色的,从中任取8个球.
问共有多少种不同的颜色搭配?
算法思路
- 首先这是一个数学的排列组合问题,但是手算的要进行分类讨论
- 首先比如红色只取1个
- 黄色只取一个....
- ...
- ...
- 首先比如红色只取1个
- 直接使用 a,b,c 替代 红,黄,绿球的数量
- a => [0,3]
- b => [0,3]
- c => [0,6]
- a+b+c=8
代码示例
Python
cnt = 0
for a in range(4):
for b in range(4):
for c in range(7):
if a + b + c == 8:
cnt += 1
print("a=%d,b=%d,c=%d" % (a, b, c))
print(cnt)
Java
public class 三色球问题 {
public static void main(String[] args) {
int cnt = 0;
for (int a = 0; a <= 3; a++)
for (int b = 0; b <= 3; b++)
for (int c = 0; c <= 6; c++)
if (a + b + c == 8) {
cnt += 1;
System.out.printf("a=%d,b=%d,c=%d\n", a, b, c);
}
System.out.println(cnt);
}
}