【发布时间】:2013-08-27 15:32:55
【问题描述】:
以下是 Facebook 拼图之一: 我无法理解如何进行此操作。
给你 C 个容器、B 个黑球和无限数量的白球。您希望以每个容器至少包含一个球并且选择白球的概率大于或等于 P% 的方式在容器之间分配球。选择是通过随机挑选一个容器,然后从中随机挑选一个球来完成的。
找到实现这一目标所需的最少白球数量。
输入
第一行包含 1
下面的每一行都包含三个整数 C B P 由一个空格分隔 1
输出
对于每个测试用例输出一行包含一个整数 - 所需的最小白球数。 (测试将确保使用有限数量的球是可能的)
样本输入
3
1 1 60
2 1 60
10 2 50
样本输出
2
2
8
解释
在第一个测试用例中,如果我们将 2 个白球和 1 个黑球放入盒子中,则选择白色球的概率为 66.(6)%,大于 60%
在第二个测试用例中,将一个白球放在一个盒子里,白色+黑色放在另一个盒子里,我们得到 0.5 * 100% + 0.5 * 50% = 75%
对于第三个测试用例,请记住我们希望每个盒子中至少有一个球。
【问题讨论】:
-
我们为什么要把黑球放在盒子里?然后我们总是可以在每个盒子里只有一个球并且总是获得概率。在当前的问题定义中,我不明白为什么这是不可能的。
-
@VoronoiPotato 可能我们必须放置所有的黑球。
-
看起来这可能行得通:尽可能均匀地分配黑色,然后添加白色直到满足所需的概率。对于给定的排列,概率为
P = (1 / numContainers) * (pW(1) + pW(2) + ... + pW(numContainers)),其中pW(i) = probability of picking a white ball from container i。但是我没有证据。 -
@IVlad 我认为这对于 2 个容器、8 个黑球和最少 21% 来说是失败的。
-
@DavidEisenstat:您是否考虑将所有黑球(或至少一个)放入一个容器中,将一个白球放入另一个容器中?因为这给了我 50% 的概率。
标签: facebook algorithm probability