P5104 红包发红包 期望入门

题意:
假如现在有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;

}

猜你喜欢

转载自blog.csdn.net/weixin_45509601/article/details/119384880