在\(\lbrack 0,1 \rbrack \)中任取一个数,期望是\(\frac{1}{2}\)
同理,在\(\lbrack 0,w \rbrack \)中任取一个数,期望是\(\frac{w}{2}\)
故而,取\(k\)个数的期望是\(\frac{w}{2^k}\)
费马小定理加快速幂即可。
#include<iostream>
#include<cstdio>
const long long MOD = 1000000007;
inline long long pw(int A,long long X){
long long RT=1,BS=A;
while(X){
if(X&1){
RT*=BS;
RT%=MOD;
}
BS*=BS;
BS%=MOD;
X>>=1;
}
return RT;
}
inline long long inv(int X){
return pw(X,MOD-2);
}
long long w,n,k;
void init(){
scanf("%lld%lld%lld",&w,&n,&k);
printf("%lld\n",(w*(inv(pw(2,k))))%MOD);
}
int main(){
init();
return 0;
}