题意:
n个盒子里装有礼物,m个人随机选择礼物,选完之后空盒子放回
问选中的礼物数的期望。
思路:
m个人是独立的。
对于每个礼物不被人选中的概率为((n-1)/n)^m
那么不被选中的礼物数的期望就是 n*((n-1)/n)^m
所以答案就是 n-n*((n-1)/n)^m;
#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std;
double dpow(double a, int n) {
double ans = 1;
while (n) {
if (n & 1) ans *= a;
a *= a;
n >>= 1;
}
return ans;
}
int main() {
int n, m;
while (~scanf("%d%d", &n, &m)) {
double ans = n - 1.0*n*dpow(1.0*(n-1)/n, m);
printf("%.9f\n", ans);
}
return 0;
}