hdu3959 Board Game Dice · 数学期望

题解

题意:
n个朋友抛m面骰子玩,按照下面规则选出法官:

  1. 选一个最小的 x,满足 m x ≥ n m^x\ge n mxn
  2. 每个人选个序,这个序长度为x,每个位置都可以选骰子一面上的数(1~m)放
  3. 抛x次骰子,组成新的序,谁的序和这个一样,谁就是法官,否则重复这三个步骤

问一个人能当上法官需要投掷次数的期望

以下是公式计算证明:

设x表示一个人在第k轮(每一轮都要投掷x次,也就是投掷kx次)才能当上法官,p表示被选为法官的概率
则每个人当上法官的概率是:

k k k1234k
p ( k ) p(k) p(k) p p p ( 1 − p ) p (1-p)p (1p)p ( 1 − p ) 2 p (1-p)^2p (1p)2p ( 1 − p ) 3 p (1-p)^3p (1p)3p ( 1 − p ) k − 1 p (1-p)^{k-1}p (1p)k1p

则每个人需要投掷次数的期望 = 投掷次数 * 投掷成功被选上法官的概率 之和

E = ∑ k i ∗ p ( k i ) = x ∗ p + 2 x ∗ ( 1 − p ) p + 3 x ∗ ( 1 − p ) 2 p + . . . + k x ∗ ( 1 − p ) k − 1 p E=\sum k_i*p(k_i)=x*p+2x*(1-p)p+3x*(1-p)^2p+...+kx*(1-p)^{k-1}p E=kip(ki)=xp+2x(1p)p+3x(1p)2p+...+kx(1p)k1p

利用错位相减法

E p = x [ 1 + 2 ∗ ( 1 − p ) + 3 ∗ ( 1 − p ) 2 + . . . + k ∗ ( 1 − p ) k − 1 ] \cfrac{E}{p}=x[1+2*(1-p)+3*(1-p)^2+...+k*(1-p)^{k-1}] pE=x[1+2(1p)+3(1p)2+...+k(1p)k1] - ①

( 1 − p ) E p = x [ 1 ( 1 − p ) + 2 ∗ ( 1 − p ) 2 + 3 ∗ ( 1 − p ) 3 + . . . + ( k − 1 ) ∗ ( 1 − p ) k − 1 + k ∗ ( 1 − p ) k ] \cfrac{(1-p)E}{p}=x[1(1-p)+2*(1-p)^2+3*(1-p)^3+...+(k-1)*(1-p)^{k-1}+k*(1-p)^{k}] p(1p)E=x[1(1p)+2(1p)2+3(1p)3+...+(k1)(1p)k1+k(1p)k] - ②

① - ② :

E = x [ 1 + [ ( 1 − p ) + ( 1 − p ) 2 + ( 1 − p ) 3 + . . . + ( 1 − p ) k − 1 ] − k ∗ ( 1 − p ) k ] E=x\left[1+\left[ (1-p)+(1-p)^2+(1-p)^3+...+(1-p)^{k-1}\right] -k*(1-p)^{k}\right] E=x[1+[(1p)+(1p)2+(1p)3+...+(1p)k1]k(1p)k]

然后用等比公式合并,

等比公式通项式、求和公式:
a n = a 1 ⋅ q n − 1 a_n=a_1·q^{n-1} an=a1qn1
S n = a 1 ( 1 − q n ) 1 − q   ( q ≠ 1 ) S_n=\cfrac{a_1(1-q^n)}{1-q}\,(q\neq1) Sn=1qa1(1qn)(q=1)

E = x [ 1 + ( 1 − p ) [ 1 − ( 1 − p ) k − 1 ] p − k ( 1 − p ) k ] E=x\left[1+\cfrac{(1-p)\left[1-(1-p)^{k-1}\right]}{p}-k(1-p)^k\right] E=x[1+p(1p)[1(1p)k1]k(1p)k]

E = x [ 1 + ( 1 − p ) p − ( 1 − p ) k p − k ( 1 − p ) k ] E=x\left[1+\cfrac{(1-p)}{p}-\cfrac{(1-p)^k}{p}-k(1-p)^k\right] E=x[1+p(1p)p(1p)kk(1p)k]

E = x [ 1 p − ( 1 − p ) k ⋅ ( 1 p + k ) ] E=x\left[\cfrac{1}{p} -(1-p)^k·(\cfrac{1}{p}+k)\right] E=x[p1(1p)k(p1+k)]

注意:这里的k是无穷大,因为没有回合限制

因此 ( 1 − p ) k (1-p)^k (1p)k 趋向于0

也就是说 E ≈ x p E\approx \cfrac{x}{p} Epx

还记得之前的定义吗?p表示被选为法官的概率

一条序列x个位置,每个位置有m种数字可以填入,总共有 m x m^x mx

只要序列和第三步出现的相同,就是被选中

所以每个人被选中的概率 p = 1 m x p=\cfrac{1}{m^x} p=mx1

n个人里有一个被选中的概率就是 n m x \cfrac{n}{m^x} mxn

所以 a n s = x p = x ⋅ m x n ans=\cfrac{x}{p}=\cfrac{x·m^x}{n} ans=px=nxmx

诶,要是我比赛的时候能做出来该多好


在这里插入图片描述


#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
ll n,m,k;

int main(){
    ios::sync_with_stdio(0);

    int T;
    cin>>T;
    for (int cs = 1; cs <= T; ++cs) {
        cin>>n>>m;
        int x=1;
        ll tmp=m;
        while(tmp<n)tmp*=m,x++;
        ll mol = pow(m,x)*x;//分子
        ll g=__gcd(mol,n);

        printf("Case %d: %lld/%lld\n",cs,mol/g,n/g);
    }
    return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值