D:苏卿念发红包
首先,题目中已经说得很明确了(按照常理也是)。
当有mmm个包,你第kkk个抢。k>mk>mk>m的话。显然,平时会显示:来晚了一步,红包已经被领完了\text{来晚了一步,红包已经被领完了}来晚了一步,红包已经被领完了
就是,已经被第mmm个及之前的人领完了。所以说,期望是000。
然后,看k<=mk<=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∗∫0m2nf(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∗∫0b2ax 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∗∫0m2n2(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 ∫020x 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∫0202(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∫0209(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:苏卿念发红包的更多相关文章
- PHP实现发红包程序
我们先来分析下规律. 设定总金额为10元,有N个人随机领取: N=1 第一个 则红包金额=X元: N=2 第二个 为保证第二个红包可以正常发出,第一个红包金额=0.01至9.99之间的某个随机数. 第 ...
- PHP实现发红包程序(helloweba网站经典小案例)
我们先来分析下规律. 设定总金额为10元,有N个人随机领取: N=1 第一个 则红包金额=X元: N=2 第二个 为保证第二个红包可以正常发出,第一个红包金额=0.01至9.99之间的某个随机数. 第 ...
- 使用PHP编写发红包程序
使用PHP编写发红包程序 http://www.jb51.net/article/69815.htm 投稿:hebedich 字体:[增加 减小] 类型:转载 时间:2015-07-22 微信发红 ...
- js 发红包
<!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content ...
- 发红包android
立即春节,写个应景的控件 思路分析 1.红包沿着不同的轨迹由上往下运动 2.当手指捕获到一个红包,红包停止原先的运动,能够随着手指的滑动做跟手操作 3.当手指动作停止后,红包放大 4. ...
- 微信小程序红包开发 小程序发红包 开发过程中遇到的坑 微信小程序红包接口的
最近公司在开发一个小程序红包系统,客户抢到红包需要提现.也就是通过小程序来给用户发红包. 小程序如何来发红包呢?于是我想到两个方法. 之前公众号开发一直用了的.一个是红包接口,一个是企业支付接口.一开 ...
- 微信小程序发红包
背景: 近期一个朋友公司要做活动,活动放在小程序上.小程序开发倒是不难,不过要使用小程序给微信用户发红包,这个就有点麻烦 确定模式: 小程序目前没有发红包接口,要实现的话,只能是模拟红包,即小程序上做 ...
- JAVA发红包案例
模拟拼手气红包* 对于指定总金额以及红包个数,可以生成不同金额的红包,*,每个红包金额随机生成. * 分析这个题目:* 1.首先需要一个分发红包的方法.输入的参数是 总金额 以及 红包个数.* 按照这 ...
- Python_程序实现发红包
发红包 200块钱 20个红包 将200块随机分成20份 基础版本: import random ret = random.sample(range(1, 200 * 100), 19) ret = ...
随机推荐
- CLSRSC-400: A system reboot is required to continue installing.
I try to install oracle database 12c RAC on the RedHat 7.3,when I execute the script '/u01/app/12.2. ...
- C# winform 主界面打开并关闭登录界面
在winform 界面编程中,我们有时候要在主界面打开之前先显示登录界面,当登录界面用户信息校验正确后才打开主界面,而这时登陆界面也完成使命该功成身退了. 目前有两种方法可实现: 方法1. 隐藏登录界 ...
- Delphi Thread.Queue与Synchronize的区别(差别: Synchronize是阻塞,Queue是非阻塞)
前话: 其实大家要学会看源码, 我接下来要说的这些东东,与其等别人讲,还不如自己搞几个代码试一下,印象还深刻点 TThread.Queue和TThread.Synchronize的区别, 效果上:二 ...
- C#调用记事本并填写内容
using System.Runtime.InteropServices; using System.Diagnostics; [DllImport("User32.DLL") ...
- 使用VS2010再装VS2013不用再烦恼不兼容
某些同事有时在开发过程中出现这么个问题,在使用js直接异步调用类库时,弹出错误类库不存在或者没有定义等,类似问题,这个时候可能你正在绞尽脑汁的去解决问题,明明问题不大,为什么安装VS2013后就不能打 ...
- linux 磁盘控件找到大文件
df -lh Used:已经使用的空间 Avail:可以使用的空间 Mounted on:挂载的目录 然后找到大文件 du是linux下用看查看磁盘的命令 下面我们先一个目录的来查看空间占用情况 du ...
- 基于ASP.NET的新闻管理系统(三)代码展示
5.1.1栏目部分 增加栏目(addLanMu.aspx): <html xmlns="http://www.w3.org/1999/xhtml"> <head ...
- pycharm安装及配置全过程
首先要准备两个文件,一是pycharm-community,二是python-3.7.2-amd. PyCharm 的下载地址:http://www.jetbrains.com/pycharm/dow ...
- SYN591-A型 计数器
SYN591-A型 计数器 秒表计数器累计计数器电机测速表使用说明视频链接: http://www.syn029.com/h-pd-248-0_310_44_-1.html 请将此链接复制到浏览 ...
- python正则表达式模块
正则表达式是对字符串的最简约的规则的表述.python也有专门的正则表达式模块re. 正则表达式函数 释义 re.match() 从头开始匹配,匹配失败返回None,匹配成功可通过group(0)返回 ...