神仙概率题
设 (ans[i]) 为得到 (i) 张的期望次数, (sum[i]) 为期望花费。
假设已经有了 (i-1) 张,下一次得到第 (i) 张的概率是 (displaystyle frac{n-i+1}{n}) ,期望进行次数 (displaystyle frac{n}{n-i+1})。
那期望单价呢?是 (displaystyle frac{ans[i-1]+ans[i]}{2}) 吗?不是,是 (ans[i])。
因为第 (i) 张的单价是 (i) ,所以第 (i) 张的期望单价是得到 (i) 时的期望次数。可以模拟一下加深理解。
#include<iostream>
using namespace std;
int n;
double ans[10005], sum[10005];
int main()
{
cin >> n;
for (int i = 1; i <= n; ++i)ans[i] = ans[i - 1] + (double)n / (n - i + 1), sum[i] = sum[i - 1] + ans[i] * n / (n - i + 1);
printf("%.2f", sum[n]);
}