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 = ...
随机推荐
- 基于事件驱动的DDD领域驱动设计框架分享(附源代码)
原文:基于事件驱动的DDD领域驱动设计框架分享(附源代码) 补充:现在再回过头来看这篇文章,感觉当初自己偏激了,呵呵.不过没有以前的我,怎么会有现在的我和现在的enode框架呢?发现自己进步了真好! ...
- Excel报表开发(本节主要讲述导出到Excel操作)
一.Excel导入到GridView以及数据库操作比较简单,这儿不做过多讲解,需要注意的有二点: 1.设置IMEX=1将强制混合数据转换为文本. 2.解决Excel驱动程序默认读取8行:将" ...
- 2019年5月23日 AY 程序员调侃语录
我是AY,杨洋,做wpf开发的,最近得了一种病,程序员患得患失综合征.同事说,我年纪在变大,技术跟不上.业余之间,我原创了写了一些语录,给大家中午休息,累疲惫的时候,开心放松下. 1.有很多公司找我谈 ...
- Webapi实现websocket实时通讯
应用场景:前端页面发起一个websocket请求与后端进行实时通讯.后端监听某端口获取数据,将监听到的数据加工处理,通过websocket发送到前端. 这里只提供后台的处理方案仅供参考. 1.后端监听 ...
- 如何自学PHP做一个网站 PHP可以做什么项目?网站 小程序 公众号能用PHP开发吗?
很多想从事程序开发的人员,想自学一门语言,不知道从哪里下手学习,如何入门学习?今天我们就以PHP为例子,来讲述一下如何快速的学习一门开发语言,让你快速入门.PHP是一个什么语言?它能开发什么项目呢?下 ...
- mogodbshell中数组对象查询修改方法
在mongodb中,存在如下数据 { "_id" : ObjectId("59af55078a8fc5e51ff425de"), "title&quo ...
- Python的魔术方法详解
构造和初始化 __init__我们很熟悉了,它在对象初始化的时候调用,我们一般将它理解为"构造函数". 实际上, 当我们调用x = SomeClass()的时候调用,__init_ ...
- tomcat实现
转载地址:https://blog.csdn.net/u014795347/article/details/52328221?locationNum=2&fps=1 以下代码纯属本人复制,而且 ...
- Spring中AOP相关源码解析
前言 在Spring中AOP是我们使用的非常频繁的一个特性.通过AOP我们可以补足一些面向对象编程中不足或难以实现的部分. AOP 前置理论 首先在学习源码之前我们需要了解关于AOP的相关概念如切点切 ...
- Python中的函数及函数参数的使用
函数:一个工具,随调随用 降级代码冗余 增加代码的复用性,提高开发效率,为了不成为cv战士 提高程序扩展性 函数有两个阶段:定义阶段,调用阶段. 定义时:只检查函数体内代码语法,不执行函数体内代码. ...