袋子里的三种球类

时间:2016-04-02 11:51:09

标签: c++11 math probability

我有一个问题听起来像这样: 我们有一个带球的袋子。有R红球,B蓝球和G绿球。 我需要从袋子中找到最小数量的提取物,这样我确信我至少会有相同颜色的K球。

任何人都可以提出任何想法吗?或提示等?

2 个答案:

答案 0 :(得分:0)

如果K>max(R,G,B)则问题无法解决。所以我们假设K <= max(R,G,B)

如果您无法控制提取哪个球,那么您最多需要 (即这是一个下限)min(R, (K-1))+min(G, (K-1))+min(B, (K-1))+1提取,原因很明显:extract { {1}}红球(或所有红球,如果K-1),然后提取R<K绿球(或所有绿球,如果K-1),最后提取G<K蓝球(或所有蓝球,如果K-1)。现在剩下至少一个球---因为假设B<K - 当我们提取它时,我们有max(R,G,B)>=K个相同颜色的球。 (这显然是最糟糕的情况。)

你显然至少需要K次提取(这是最好的情况)。

由于您使用K标记了问题,因此您可能只能随机提取均匀选择的球。在这种情况下,我们可以谈谈在我们最终得到相同颜色的probability球之前所需的预期提取次数。这是一个有趣的问题。

答案 1 :(得分:0)

你需要确保上键合工作...当我测试上键时,它会吹掉int范围(我使用java)