Irwin-Hall 分布/CF1477F 题解
Irwin-Hall 分布
对于 \(n\) 个均匀分布于 \([0,1]\) 的连续随机变量 \(X_1,X_2,\dots,X_n\),其和的随机变量 \(X\) 满足:
\]
证明:
设 \(f(x)\) 为 \(X_i\) 的概率密度函数。显然:
1 & (x\in [0,1])\\
0 & \text{otherwise}
\end{matrix}\right.
\]
那么
=\int _{x_i\in [0,1],\sum x_i\le x}\prod dx_i\\
\]
采用归纳法证明。
=\int_0^1\sum_{k=0}^{\lfloor x-x_{n+1}\rfloor}(-1)^k\binom nk \frac{(x-k-x_{n+1})^n}{n!}dx_{n+1}\\
\]
记 \([x]=x-\lfloor x\rfloor\),
=\int_0^{[x]}\sum_{k=0}^{\lfloor x\rfloor}(-1)^k\binom nk \frac{(x-k-x_{n+1})^n}{n!}dx_{n+1}+\int_{[x]}^1\sum_{k=0}^{\lfloor x\rfloor-1}(-1)^k\binom nk \frac{(x-k-x_{n+1})^n}{n!}dx_{n+1}\\
=\sum_{k=0}^{\lfloor x\rfloor}(-1)^k\binom nk\frac{(x-k)^{n+1}-(x-k-[x])^{n+1}}{(n+1)!}+\sum_{k=0}^{\lfloor x\rfloor-1}(-1)^k\binom nk\frac{(x-k-[x])^{n+1}-(x-k-1)^{n+1}}{(n+1)!}\\
=\sum_{k=0}^{\lfloor x\rfloor-1}(-1)^k\binom nk\frac{(x-k)^{n+1}-(x-k-1)^{n+1}}{(n+1)!}+(-1)^{\lfloor x\rfloor}\binom n{\lfloor x\rfloor}\frac{[x]^{n+1}}{(n+1)!}\\
=\sum_{k=0}^{\lfloor x\rfloor-1}(-1)^k\binom nk\frac{(x-k)^{n+1}}{(n+1)!}+\sum_{k=1}^{\lfloor x\rfloor}(-1)^k\binom n{k-1}\frac{(x-k)^{n+1}}{(n+1)!}+(-1)^{\lfloor x\rfloor}\binom n{\lfloor x\rfloor}\frac{[x]^{n+1}}{(n+1)!}\\
=\sum_{k=0}^{\lfloor x\rfloor-1}(-1)^k\binom {n+1}k\frac{(x-k)^{n+1}}{(n+1)!}+(-1)^{\lfloor x\rfloor}\binom n{\lfloor x\rfloor-1}\frac{[x]^{n+1}}{(n+1)!}+(-1)^{\lfloor x\rfloor}\binom n{\lfloor x\rfloor}\frac{[x]^{n+1}}{(n+1)!}\\
=\sum_{k=0}^{\lfloor x\rfloor}(-1)^k\binom {n+1}k\frac{(x-k)^{n+1}}{(n+1)!}
\]
不难发现 \(n=1\) 时命题成立,证毕。
应用
CF1477F
令 \(m=\) 题目所述 \(k\)。
首先注意到这个正比例实际上就是随便切一刀。
观察到一个分别被切多少刀后合法的序列 \(\{b_i\}\) 的贡献是:
\]
据此设计每一个巧克力的生成函数:
F(z)=\prod F_i(z)
\]
答案即为
\]
因为 \([\dfrac{z^i}{i!}]F(z)\) 就是切 \(i\) 次成功的概率,而贡献已经在生成函数那里统计了。
那么考虑求出 \(f(a,b)\) 再谈生成函数。
设切的位置为 \(X_1,X_2,\dots,X_b\),设 \(z_i=X_i-X_{i-1}\)。
令 \(w=\dfrac{m}{a}\),那么所求概率即为
=n!w^n\int _{0<z_i<1,\frac 1w-1<\sum z_i<\frac 1w}\prod dz_i
\]
根据 Irwin-Hall 分布,设
\]
=n!(G(\frac 1w)-G(\frac 1w-1))
\]
将其展开得到
\]
代入原式,
\]
交换求和次序,不难发现此式(这里把 \(a_i\) 写作 \(a\))
\]
考虑最后得到的式子里面 \([z^ie^{jz}]\) 对答案的贡献,就是
=\frac{1}{i!}\sum_{k\ge 0}\binom{i+k}{k}j^{k}\\
=\frac{(1+j)^{-i-1}}{i!}
\]
不妨把后面的 \(\exp(\dfrac{pz}{s})\) 视为另一个变量,\(p\) 为系数,可以二维 NTT 解决,但是事实上没有人这么做,由于时间宽泛,可以用更简单的暴力 \(O(\dfrac{n^2L}{m^2})\),这里 \(L=\sum a_i\)。
Irwin-Hall 分布/CF1477F 题解的更多相关文章
- D3、EChart、HighChart绘图demol
1.echarts: <!DOCTYPE html> <html> <head> <meta charset="utf-8" ...
- 软件项目技术点(1)——d3.interpolateZoom-在两个点之间平滑地缩放平移
AxeSlide软件项目梳理 canvas绘图系列知识点整理 软件参考d3的知识点 我们在软件中主要用到d3.js的核心函数d3.interpolateZoom - 在两个点之间平滑地缩放平移.请 ...
- D3js-API介绍【中】
JavaScript可视化图表库D3.js API中文參考,d3.jsapi D3 库所提供的全部 API 都在 d3 命名空间下.d3 库使用语义版本号命名法(semantic versioning ...
- 【D3 API 中文手冊】
[D3 API 中文手冊] 声明:本文仅供学习所用,未经作者同意严禁转载和演绎 <D3 API 中文手冊>是D3官方API文档的中文翻译. 始于2014-3-23日,基于VisualCre ...
- d3 数学方法(伪随机数生成器 )
一.正态(高斯)分布(normal (Gaussian) distribution)的随机数 /* var nomarlRandmo = d3.random.normal(); console.log ...
- Generalized normal distribution and Skew normal distribution
Density Function The Generalized Gaussian density has the following form: where (rho) is the " ...
- POJ 2318 TOYS(点与直线的关系 叉积&&二分)
题目链接 题意: 给定一个矩形,n个线段将矩形分成n+1个区间,m个点,问这些点的分布. 题解: 思路就是叉积加二分,利用叉积判断点与直线的距离,二分搜索区间. 代码: 最近整理了STL的一些模板,发 ...
- 【BZOJ2626】JZPFAR kd-tree+堆
[BZOJ2626]JZPFAR Description 平面上有n个点.现在有m次询问,每次给定一个点(px, py)和一个整数k,输出n个点中离(px, py)的距离第k大的点的标号.如果有两个( ...
- D3js-API介绍【英】
Everything in D3 is scoped under the d3 namespace. D3 uses semantic versioning. You can find the cur ...
- 【题解】AHOI2009同类分布
好开心呀~果然只有不看题解做出来的题目才会真正的有一种骄傲与满足吧ヾ(๑╹◡╹)ノ" 实际上这题只要顺藤摸瓜就可以了.首先按照数位dp的套路,有两维想必是省不掉:1.当前dp到到的位数:2. ...
随机推荐
- 我是如何从0开始,在23天里完成一款Android游戏开发的 – Part 1 – 开篇与前2天
本文由 ImportNew - ImportNew读者 翻译自 bigosaur.如需转载本文,请先参见文章末尾处的转载要求. 本文是这个系列的第一篇文章,记录作者的开篇和前2天的情况.文章由 朱新亮 ...
- TreeMap源码分析——深入分析(基于JDK1.6)
TreeMap有Values.EntrySet.KeySet.PrivateEntryIterator.EntryIterator.ValueIterator.KeyIterator.Descendi ...
- 终端工具之Tabby
我工作中用的最多的工具之一就是「终端连接工具」了,因为经常和 Linux 服务器打交道,经常在上面跑代码.排查系统问题等等. Windows 系统最常用的就是 Xshell 这款终端工具了,但是它只能 ...
- Blazor 组件库 BootstrapBlazor 中Card组件介绍
一个较为完整的Card样子 Card组件介绍 Card组件分为三部分,CardHeader.CardBody.CardFooter. 代码格式如下: <Card> <CardHead ...
- 第四届河南省 CCPC 大学生程序设计竞赛
F-集合之和 规定集合A和集合B的加法运算:\(A+B={x+y|x∈A,y∈B}\),设有限数集A中的元素个数为|A|,现给定n,请你构造集合A使得\(|A+A|=n\),如果A不存在,输出-1 题 ...
- 一个关于CountDownLatch的并发需求
需求 A,B,C可并发运行,全部成功才算成功,一个失败全员回滚. 思考 使用CountDownLatch,可以保证三个线程结束后,才进行提交成功状态.但是怎么才能判断某个任务失败了呢? 捕获子线程异常 ...
- 使用CANAL同步数据
1.概要 canal 是阿里发布的一个mysql 同步工具,它是模拟 mysql slave 的方式读取binlog,并可以将数据写入到队列中. 如下图:是官方提供的架构图. 2.下载CANAL 下载 ...
- Python3 print不输出回车符
Python3 print的函数原型: print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False) objects ---- 输出 ...
- 【kernel】从 /proc/sys/net/ipv4/ip_forward 参数看如何玩转 procfs 内核参数
本文的开篇,我们先从 sysctl 这个命令开始. sysctl 使用 sysctl 是一个 Linux 系统工具,后台实际上是 syscall,它允许用户查看和动态修改内核参数. # 查看当前设置的 ...
- Kettle用查出来的数据自动创建表
Kettle在表输入的时候,写好很复杂的SQL,有种场景,就是想把这个很复杂的查出来的数据,自动创建一个表. 其实,操作步骤不复杂. 跟着我来做就是了. 1,新建表输出,Shift按住,从表输入拖动 ...