首先,题目中已经说得很明确了(按照常理也是)。

当有mmm个包,你第kkk个抢。k>mk>mk>m的话。显然,平时会显示:来晚了一步,红包已经被领完了\text{来晚了一步,红包已经被领完了}来晚了一步,红包已经被领完了

就是,已经被第mmm个及之前的人领完了。所以说,期望是000。

然后,看k&lt;=mk&lt;=mk<=m的时候。

我们构造一个函数f(a,b,c)表示剩余a元,还有b个包,你在第c个抢得到的期望f(a,b,c)\text{表示剩余a元,还有b个包,你在第c个抢得到的期望}f(a,b,c)表示剩余a元,还有b个包,你在第c个抢得到的期望

于是,我们就有一个期望的转移:

f(n,m,k)=m2n∗∫02nmf(n−x,m−1,k−1)  dxf(n,m,k)=\frac{m}{2n}*\int_{0}^{\frac{2n}{m}}f(n-x,m-1,k-1) \ \ dxf(n,m,k)=2nm​∗∫0m2n​​f(n−x,m−1,k−1)  dx

特别的,当k=1k=1k=1时

f(a,b,1)=b2a∗∫02abx dxf(a,b,1)=\frac{b}{2a}*\int_{0}^{\frac{2a}{b}}x \ dxf(a,b,1)=2ab​∗∫0b2a​​x dx

m=1m=1m=1时,我们这一类里,只有m=k=1m=k=1m=k=1,f(a,1,1)=af(a,1,1)=af(a,1,1)=a


然后我们展开来看:

当k!=mk!=mk!=m时:::

f(n,m,k)=m2n∗∫02nmm−12(n−x1)∫02(n−x1)m−1m−22(n−x1−x2) …… m−k+22(n−x1...−xk−2)∫02(n−x1...−xk−2)m−k+2m−k+12(n−x1...−xk−1)∫02(n−x1...−xk−1)m−k+1xk dxk dxk−1... dx1f(n,m,k)=\frac{m}{2n}*\int_{0}^{\frac{2n}{m}}\frac{m-1}{2(n-x_{1})}\int_{0}^{\frac{2(n-x_{1})}{m-1}}\frac{m-2}{2(n-x_{1}-x_{2})} \ …… \ \frac{m-k+2}{2(n-x_{1}...-x_{k-2})}\int_{0}^{\frac{2(n-x_{1}...-x_{k-2})}{m-k+2}}\frac{m-k+1}{2(n-x_{1}...-x_{k-1})}\int_{0}^{\frac{2(n-x_{1}...-x_{k-1})}{m-k+1}}x_{k} \ d_{x_{k}}\ d_{x_{k-1}} ... \ d_{x_{1}}f(n,m,k)=2nm​∗∫0m2n​​2(n−x1​)m−1​∫0m−12(n−x1​)​​2(n−x1​−x2​)m−2​ …… 2(n−x1​...−xk−2​)m−k+2​∫0m−k+22(n−x1​...−xk−2​)​​2(n−x1​...−xk−1​)m−k+1​∫0m−k+12(n−x1​...−xk−1​)​​xk​ dxk​​ dxk−1​​... dx1​​

当k=mk=mk=m时,积分到:

22(n−x1...−xm−2)∫02(n−x1...−xm−2)2xm−1 dxm−1 dxm−2... dx1\frac{2}{2(n-x_{1}...-x_{m-2})}\int_{0}^{\frac{2(n-x_{1}...-x_{m-2})}{2}} x_{m-1} \ d_{x_{m-1}}\ d_{x_{m-2}} ... \ d_{x_{1}}2(n−x1​...−xm−2​)2​∫022(n−x1​...−xm−2​)​​xm−1​ dxm−1​​ dxm−2​​... dx1​​

就可以了。


然后………………

这怎么做?!!!kkk重积分啊,套自适应性辛普森积分?

数据范围一看,TTT了啊。

好吧好吧,我们化简一下看看。


先只看后两项:

$\frac{m-k+2}{2(n-x_{1}…-x_{k-2})}\int_{0}{\frac{2(n-x_{1}…-x_{k-2})}{m-k+2}}\frac{m-k+1}{2(n-x_{1}…-x_{k-1})}\int_{0}{\frac{2(n-x_{1}…-x_{k-1})}{m-k+1}}x_{k} \ d_{x_{k}}\ d_{x_{k-1}} $

我们开始化简:

m−k+22(n−x1...−xk−2)∫02(n−x1...−xk−2)m−k+2m−k+12(n−x1...−xk−1)∗12∗[2(n−x1...−xk−1)m−k+1]2xk dxk dxk−1\frac{m-k+2}{2(n-x_{1}...-x_{k-2})}\int_{0}^{\frac{2(n-x_{1}...-x_{k-2})}{m-k+2}}\frac{m-k+1}{2(n-x_{1}...-x_{k-1})} *\frac{1}{2}*[ \frac{2(n-x_{1}...-x_{k-1})}{m-k+1} ]^{2} x_{k} \ d_{x_{k}}\ d_{x_{k-1}}2(n−x1​...−xk−2​)m−k+2​∫0m−k+22(n−x1​...−xk−2​)​​2(n−x1​...−xk−1​)m−k+1​∗21​∗[m−k+12(n−x1​...−xk−1​)​]2xk​ dxk​​ dxk−1​​

m−k+22(n−x1...−xk−2)∫02(n−x1...−xk−2)m−k+2(n−x1...−xk−1)m−k+1\frac{m-k+2}{2(n-x_{1}...-x_{k-2})}\int_{0}^{\frac{2(n-x_{1}...-x_{k-2})}{m-k+2}} \frac{(n-x_{1}...-x_{k-1})}{m-k+1}2(n−x1​...−xk−2​)m−k+2​∫0m−k+22(n−x1​...−xk−2​)​​m−k+1(n−x1​...−xk−1​)​

然后,把常数1m−k+1\frac{1}{m-k+1}m−k+11​提出来,继续拆一个积分号,这里就不写了。

希望自己找一张草稿纸写一下。

神奇的发现。

竟然是那么的相似。

我们很显然的利用数学归纳法。

直接按照相似的公式积第一项,把常数也按照规律写下来。

积分之后,把所有常数消去。

神奇的发现:

f(n,m,k)=nmf(n,m,k)=\frac{n}{m}f(n,m,k)=mn​

mmp!!!mmp!!!mmp!!!

(感受到了世界的深深的恶意)

是不是我们算错了?


好,现在请拿起身边的卡西欧计算器。

我们试试样例一:

n=100,m=10,k=3n=100,m=10,k=3n=100,m=10,k=3

我们把k=1,2,3k=1,2,3k=1,2,3都试一下。

nm=10\ \frac{n}{m}=10 mn​=10


k=1 :k=1 \ :k=1 :

f(100,10,1)=120 ∫020x dx=10f(100,10,1)=\frac{1}{20} \ \int_{0}^{20} x\ d_{x} =10f(100,10,1)=201​ ∫020​x dx​=10


k=2 :k=2 \ :k=2 :

f(100,10,2)=120∫02092(100−x1)∫02(100−x1)9x2  dx2 dx1f(100,10,2)=\frac{1}{20}\int_{0}^{20} \frac{9}{2(100-x_{1})}\int_{0}^{\frac{2(100-x_{1})}{9}} x_{2}\ \ dx_{2} \ dx_{1}f(100,10,2)=201​∫020​2(100−x1​)9​∫092(100−x1​)​​x2​  dx2​ dx1​

=120∫020(100−x1)9 dx1 =1180∫020(100−x1)  dx1=10=\frac{1}{20}\int_{0}^{20} \frac{(100-x_{1})}{9} \ dx_{1}\ =\frac{1}{180}\int_{0}^{20}(100-x_{1}) \ \ dx_{1}=10=201​∫020​9(100−x1​)​ dx1​ =1801​∫020​(100−x1​)  dx1​=10


k=3 :k=3 \ :k=3 : 算出来也是101010


哇………………

好吧,这道题就是nm\frac{n}{m}mn​了,O1O_{1}O1​搞出来了。

ENDENDEND。

D:苏卿念发红包的更多相关文章

  1. PHP实现发红包程序

    我们先来分析下规律. 设定总金额为10元,有N个人随机领取: N=1 第一个 则红包金额=X元: N=2 第二个 为保证第二个红包可以正常发出,第一个红包金额=0.01至9.99之间的某个随机数. 第 ...

  2. PHP实现发红包程序(helloweba网站经典小案例)

    我们先来分析下规律. 设定总金额为10元,有N个人随机领取: N=1 第一个 则红包金额=X元: N=2 第二个 为保证第二个红包可以正常发出,第一个红包金额=0.01至9.99之间的某个随机数. 第 ...

  3. 使用PHP编写发红包程序

    使用PHP编写发红包程序 http://www.jb51.net/article/69815.htm 投稿:hebedich 字体:[增加 减小] 类型:转载 时间:2015-07-22   微信发红 ...

  4. js 发红包

    <!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content ...

  5. 发红包android

    立即春节,写个应景的控件         思路分析 1.红包沿着不同的轨迹由上往下运动 2.当手指捕获到一个红包,红包停止原先的运动,能够随着手指的滑动做跟手操作 3.当手指动作停止后,红包放大 4. ...

  6. 微信小程序红包开发 小程序发红包 开发过程中遇到的坑 微信小程序红包接口的

    最近公司在开发一个小程序红包系统,客户抢到红包需要提现.也就是通过小程序来给用户发红包. 小程序如何来发红包呢?于是我想到两个方法. 之前公众号开发一直用了的.一个是红包接口,一个是企业支付接口.一开 ...

  7. 微信小程序发红包

    背景: 近期一个朋友公司要做活动,活动放在小程序上.小程序开发倒是不难,不过要使用小程序给微信用户发红包,这个就有点麻烦 确定模式: 小程序目前没有发红包接口,要实现的话,只能是模拟红包,即小程序上做 ...

  8. JAVA发红包案例

    模拟拼手气红包* 对于指定总金额以及红包个数,可以生成不同金额的红包,*,每个红包金额随机生成. * 分析这个题目:* 1.首先需要一个分发红包的方法.输入的参数是 总金额 以及 红包个数.* 按照这 ...

  9. Python_程序实现发红包

    发红包 200块钱  20个红包 将200块随机分成20份 基础版本: import random ret = random.sample(range(1, 200 * 100), 19) ret = ...

随机推荐

  1. Quartz Cron 生成工具

    /** * 每周期 */ function everyTime(dom) { var item = $("input[name=v_" + dom.name + "]&q ...

  2. QT编译./configure参数的详细解释

    可以随便的转载,只要按照规矩走带上咱论坛的链接就好. ======================================全文是按照./configure -help来翻译的========= ...

  3. QtZint编译过程记录(要使用 QTMAKE_CFLAGS += /TP 参数)

    1,下载zint后,在zint-2.4.3\win32\vcx目录下找到zlib.props和libpng.props文件,分别改为zlib和libpng的源码目录.这2个开源库最好是找工程中使用的版 ...

  4. 记住以下10条,Linux磁盘与文件系统管理无忧矣

    1.查看当前Linux系统所支持的文件系统:ls -l /lib/modules/$(uname -r)/kernel/fs:目前已加载到内存中支持的文件系统:cat /proc/filesystem ...

  5. Codility--- TapeEquilibrium

    Task description A non-empty zero-indexed array A consisting of N integers is given. Array A represe ...

  6. TopFreeTheme精选免费模板【20130704】

    今天我们给大家分享10个最新的主题模板,6款WordPress主题,3款Joomla模板,1款Magento主题.它们分别来自ThemeForest,RocketTheme,YooTheme.有需要的 ...

  7. Ubuntu --- lamp环境下安装php扩展和开启apache重写

    安装教程参考:http://www.laozuo.org/8303.html 1.安装php扩展(比如安装mbstring) 先搜索相关的包 apt-cache search php7 再安装 apt ...

  8. Hexo+NexT(六):手把手教你编写一个Hexo过滤器插件

    Hexo+NexT介绍到这里,我认为已经可以很好地完成任务了.它所提供的一些基础功能及配置,都已经进行了讲解.你已经可以随心所欲地配置一个自己的博客环境,然后享受码字的乐趣. 把博客托管到Github ...

  9. 拉格朗日乘子法 - KKT条件 - 对偶问题

    接下来准备写支持向量机,然而支持向量机和其他算法相比牵涉较多的数学知识,其中首当其冲的就是标题中的拉格朗日乘子法.KKT条件和对偶问题,所以本篇先作个铺垫. 大部分机器学习算法最后都可归结为最优化问题 ...

  10. 【java】MD5加密工具

    MD5: /** * 对指定字段进行MD5加密 * 参数为空或发生异常都会返回 @PASE-_FAIL (-1) * @author ZX * @date 2018年09月10日16:03:07 * ...