题意:
假如现在有w元,那么你抢红包能抢到的钱就是[0,w]等概率均匀随机出的一个实数x。
现在红包发了一个w元的红包,有n个人来抢。那么请问第kk个人期望抢到多少钱?
思路
首先我们先算第一个人的期望,他选择每种金额的概率相等。故易得:
F ( x ) = x w ( 0 < = x < = w ) F(x) = \frac{x}{w}(0<= x <= w) F(x)=wx(0<=x<=w)
这是一个离散型函数,我们对其求导得
f ( x ) = 1 w f(x) = \frac{1}{w} f(x)=w1
E = ∫ 0 w f ( x ) x d x E = \int_0^wf(x)x dx E=∫0wf(x)xdx
可得E=x/2.
即第一个人的期望为w/2,可推得后面的人每次都是取w/2,那么第k个人得期望就是w/2^k。
#include "bits/stdc++.h"
#define int long long
using namespace std;
const int mod = 1e9+7;
const int N = 3e6 + 10;
double dp[N];
int quickpow(int a,int b)
{
int base = 1;
while (b)
{
if (b & 1)
base = (base * a) % mod;
a = (a * a) % mod;
b >>= 1;
}
return base;
}
signed main() {
ios::sync_with_stdio(0);
int w,n,k;
cin >> w >> n >> k;
cout <<(w ) * quickpow(quickpow(2,k),mod-2) % mod<< endl;
}