题意:n个盒子,m个人,每个盒子一开始有一个礼品,每次每个人任意选一个盒子,如果有礼品就拿走,问最终被拿走礼品的期望
思路:每个盒子被选的概率是1 / n,那么m次每个盒子不被选的概率为p = ((1 - n) / n) ^ m,那么每个盒子至少被选一次的为1 - p,然后有n个盒子,根据二项分布期望为np,
代码:
#include <cstdio>
#include <cstring>
#include <cmath>
double n, m;
int main() {
while (~scanf("%lf%lf", &n, &m)) {
printf("%.10lf\n", n * (1 - pow((n - 1) / n, m)));
}
return 0;
}