• CF1392H


    给定 (n) 张数字牌 (1sim n)(m) 张鬼牌,每次随机抽一张牌,现有一个集合 (S)

    • 若其为数字牌,那么给 (S) 中加入其,并移除。
    • 若其为鬼牌,则将被移除的牌加回来,如果此时 (S) 构成了全集,那么 GG

    求期望操作次数。

    • 请注意 (S) 不会删减。

    (n,mle 2 imes 10^6)

    Solution

    好仙啊!

    考虑答案可以怎么计算,实际上我们可以认为我们每次的操作为一直抽牌直到抽到鬼牌。

    于是答案就是期望抽牌的次数乘以单次抽牌的轮数。

    单次抽牌的轮数可以转换为操作 (i) 次后仍没有抽到鬼牌的概率和,即:

    [egin{aligned} &sum_{i=0}^{n} P(Xge i)=sum_{i=0}^n frac{n^{underline{i}}}{(n+m)^{underline{i}}} \&=sum_{i=0}^n frac{n!(n+m-i)!}{(n-i)!(n+m)!} \&=frac{n!}{(n+m)!}sum^n frac{(n+m-i)!}{(n-i)!} \&=frac{n!}{(n+m)!}sum^n (n+m-i)^{underline{m}} \&=frac{n!}{(n+m)!}sum^n frac{(n+m-i+1)^{underline{m+1}}-(n+m-i)^{underline{m+1}}}{m+1} \&=frac{n!}{(n+m)!} imes frac{(n+m+1)^{underline{m+1}}}{m+1} \&=frac{n!(n+m+1)!}{n!(n+m)!(m+1)} \&=1+frac{n}{m+1} end{aligned}]

    接下来考虑抽卡轮数的期望,这个本身不太好算,但我们可以考虑 (min-max) 容斥,现在只需要考虑期望操作多少轮之后可以得到 (S) 中的一张牌。

    仍然考虑转换期望,变成操作了 (i) 次之后没有抽到牌的概率和,同时不难发现每轮的操作独立,同一轮的操作只需要关注操作了剩余的 (n-|S|) 张牌。

    (p) 为操作一轮后没有 D 到集合 (S) 中的牌的概率,不难得到期望的操作轮数为:

    [sum_{i=0}^{infty} p^i ]

    即:

    [frac{1}{1-p} ]

    同时,设 (k=n-|S|),不难发现 (p) 为:

    [egin{aligned} &sum_{i=0}^{k} frac{k^{underline{i}}}{(n+m)^{underline{i+1}}} imes m \&=msum_{i=0}^k frac{k!(n+m-i-1)!}{(k-i)!(n+m)!} \&=frac{k!cdot m}{(n+m)!}sum_{i=0}^kfrac{(n+m-i-1)!}{(k-i)!} \&=frac{k!cdot m}{(n+m)!}sum_{i=0}^k (n+m-i-1)^{underline{n+m-k-1}} \&=frac{k!cdot m}{(n+m)!} imes frac{(n+m)^{underline{n+m-k}}}{n+m-k} \&=frac{k!cdot m(n+m)!}{(n+m)!(n+m-k)k!} \&=frac{m}{n+m-k} \&=frac{m}{m+|S|} end{aligned}]

    回代得到答案:

    [sum_{i=1}^n inom{n}{i}(-1)^{i+1}frac{m+i}{i} ]

    最后得到最终答案:

    [(1+frac{n}{m+1}) imes (sum_{i=1}^n inom{n}{i}(-1)^{i+1}frac{m+i}{i}) ]

    然后我们就可以得到答案了。

  • 相关阅读:
    intellij idea 修改web端口号
    intellij idea有时候有时候服务器报错500
    由于没有更新主分支的代码,总是报警
    intellij idea 快捷键
    intellij idea 修改文件名失败
    [Introduction to programming in Java 笔记] 1.3.8 Gambler's ruin simulation 赌徒破产模拟
    [Introduction to programming in Java 笔记] 1.3.7 Converting to binary 十进制到二进制的转换
    C++学习笔记-2-构造函数和析构函数
    python学习笔记--随时更新
    C++学习笔记-1-自增和自减运算符
  • 原文地址:https://www.cnblogs.com/Soulist/p/13646658.html
Copyright © 2020-2023  润新知