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 = ...
随机推荐
- linux+php+swoole解决方案
服务器接收巨量的并发我使用linux+php+swoole解决方案.简单快速高效 并发量大 稳定 http://www.swoole.com/
- <iOS小技巧> 返回上级目录操作Goback()方法
Goback()方法功能:返回上一级界面,通过判断 popViewControllerAnimated 类型是否为空,来判断是present还是pop出来,然后直接做了releaseSelf操作: - ...
- NPOI 超简单的导出导入
首先说说,第一次遇到过匿名导出的那个时候是在我在北京第一家公司,简单的声明一个对象就可以导出,那时候感觉高大上,自己也想研究研究,但是因为头将代码后来加密了根本看不到.好吧,研究了研究放弃了,后来 ...
- ngnix 安装
1安装PCRE库 ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/ 下载最新的 PCRE 源码包,使用下面命令下载编译和安装 PCRE 包: ...
- F4帮助
在INITIALIZATION之后添加 AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_month-low 事件,s_month-low为要添加的搜索帮助. 下面 ...
- 高性能高并发网站架构,教你搭建Redis5缓存集群
一.Redis集群介绍 Redis真的是一个优秀的技术,它是一种key-value形式的NoSQL内存数据库,由ANSI C编写,遵守BSD协议.支持网络.可基于内存亦可持久化的日志型.Key-Val ...
- Zookeeper详解-概述(一)
ZooKeeper是一种分布式协调服务,用于管理大型主机.在分布式环境中协调和管理服务是一个复杂的过程.ZooKeeper通过其简单的架构和API解决了这个问题.ZooKeeper允许开发人员专注于核 ...
- 微信jssdk支付坑
1.使用easywechat开发的时候,由于没有注意,配置文件中默认的请求地址是 https://api.weixin.qq.com/结果调试了半天,一直报错“40066” 这也是怪自己粗心,结果去分 ...
- 跟我学SpringCloud | 第四篇:熔断器Hystrix
跟我学SpringCloud | 第四篇:熔断器Hystrix 1. 熔断器 服务雪崩 在正常的微服务架构体系下,一个业务很少有只需要调用一个服务就可以返回数据的情况,这种比较常见的是出现在demo中 ...
- vue-cli的服务代理
vue-cli的默认端口是8080,如果我们的请求如下 我们就可以将地址改成