题目
[SPOJ 1026] FAVDICE - Favorite Dice
分析
定义一回合表示经过若干次投掷,掷出一个之前没出现过的数字。考虑现在进行第 i i i 回合,那么掷出一个之前没有出现过的数字的概率是 p i = n − i + 1 n p_i=\frac{n - i + 1}{n} pi=nn−i+1,于是掷出一个之前没出现过的数字的期望次数为 E i = 1 p i = n n − i + 1 \mathbb E_i=\frac{1}{p_i} = \frac{n}{n - i + 1} Ei=pi1=n−i+1n,于是答案为 E = ∑ i = 0 n − 1 n i \mathbb E = \sum_{i = 0}^{n - 1}\frac{n}{i} E=i=0∑n−1in
代码
#include <algorithm>
#include <cstdio>
#include <cstring>
int main() {
int T; scanf("%d", &T);
while (T--) {
int N; scanf("%d", &N);
double Ans = 0;
for (int i = 0; i < N; i++)
Ans += (double)N / (N - i);
printf("%.2f\n", Ans);
}
}