[算法]三色球问题

三色球问题

问题描述

若有一个口袋中放有12个球,其中有3个红色的,3个黄色的,6个绿色的,从中任取8个球.
问共有多少种不同的颜色搭配?

算法思路

  • 首先这是一个数学的排列组合问题,但是手算的要进行分类讨论
    • 首先比如红色只取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);
    }
}

猜你喜欢

转载自www.cnblogs.com/Rowry/p/11870565.html