骰子,老东西,新花样
期望最高
n个面,k次重新投,每次投完都是知道结果的,问期望
题解:
投一次的期望:p = (1 + 2 + 3 + … n ) / n
假设重投一次的话:
则是因为第一次投的不满意(投的值小于期望)
然后重新投。
不满意:第一次的值 <= p 概率: floor§ / n 期望: 概率 * p
再加上> p 期望: (n-floor§) / n 乘 (p + 1) + (p + 2) + … + n)
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair<char, int > PII;
const int mod = 1e9 + 7;
const int INF = 0x3f3f3f3f;
const int N = 1e6 + 50;
// 概率NB题
int main()
{
int n, m; cin >> n >> m;
double res = 0;
while (m--) {
int t = floor(res);
double f = t * 1.0 / n;
res = res * f + (1 - f) * (t + 1 + n) / 2;
}
printf("%.8lf\n", res);
return 0;
}