Dice (III)
题目大意:给出一个 n n n 面骰子,问扔出所有颜色的最小次数的期望是多少。
设 f i f_i fi 为已经扔出了 i − 1 i-1 i−1 种颜色,然后扔到 i i i 种颜色的期望。
可以得出: f i = n − i − 1 n + i − 1 n ( 1 + f i ) f_i=\frac{n-i-1}{n}+\frac{i-1}{n}(1+f_i) fi=nn−i−1+ni−1(1+fi)
求解之后 ∑ i = 1 n f i \sum\limits_{i=1}^nf_i i=1∑nfi 即是答案
#include <bits/stdc++.h>
using namespace std;
const int N = 1e5 + 10;
int n, cs;
double ans;
int main() {
int T;
scanf("%d", &T);
while(T--) {
ans = 0;
scanf("%d", &n);
for (int i = 1; i <= n; ++i) {
ans += 1 + 1.0 * (i - 1) / (n - i + 1);
}
printf("Case %d: %.10f\n",++cs, ans);
}
}