C语言实现:三色球问题
1. 问题
三色球问题:由红、黄、绿三种颜色的球,其中红球3个,黄球3个,绿球6个。现将这12个球混放在一个盒子中,从中任意摸出8个球,编程计算摸出球的各种颜色搭配。
2. 解决方案
这是一道排列组合的问题。
从12个球中任意摸出8个球,求颜色搭配的种类。
解决这类问题的一种比较简单直观的方法是应用穷举法,在可能的解空间中找出所有的搭配,然后再根据约束条件加以排除,最终筛选出正确的答案。
红色出现的次数可能性有:0,1,2,3;红色可能为0,因为其他两种颜色的球加起来为9,大于8;红色共有3个,小于8。
黄色出现的次数可能性有:0,1,2,3;黄色可能为0,因为其他两种颜色的球加起来为9,大于8;黄色共有3个,小于8。
绿色出现的次数可能性有:2,3,4,5,6;绿色最少出现2次,因为红色(3)+黄色(3)最多为6,还差2个球,只能由绿色补;绿色共有6个,小于8。
三种颜色球的所以可能性互相搭配,最终筛选出和为8的组合,即为题目所求结果。
3. 实现代码