0%

矩阵玩小凹

【集训队作业2018】矩阵玩小凹

题意:

一个n×mn\times m的矩阵An,mA_{n,m},其中的元素是[0,1][0,1]中的随机实数,设si=∑Ai,js_i=\sum A_{i,j}求Ex(⌊min⁡si⌋k)Ex(\lfloor\min s_i\rfloor^k)

(因为没发现能交的地方,random了几组数据放在了矩阵玩小凹上(并不保证写对了))

解:

因为每一行本质相同,所以我们只考虑第一行

记fif_i为⌊s1⌋=i\lfloor s_1 \rfloor=i的概率,did_i是⌊min⁡(si)⌋=i\lfloor\min(s_i)\rfloor=i的概率,那么答案就是∑i=1m−1ikdi\sum\limits_{i=1}^{m-1}i^kd_i

同时di=(∑j=infj)n−(∑j=i+1nfj)nd_i=(\sum\limits_{j=i}^{n} f_j)^n-(\sum\limits_{j=i+1}^{n}f_j)^n

这都是好算的,我们考虑fif_i怎么算

记gi=∑j=1iA1,j−⌊∑j=1iA1,j⌋g_i=\sum_{j=1}^{i}A_{1,j}-\lfloor\sum_{j=1}^{i}A_{1,j}\rfloor,容易发现这也是[0,1][0,1]内随机生成的

那么⌊s1⌋=∑i=2m[gi<gi−1]\lfloor s_1\rfloor=\sum\limits_{i=2}^m[g_i<g_{i-1}]

因为如果当前的gig_i小于上一个gi−1g_{i-1}说明一定“溢出”了一个整数位(因为Ai,j∈[0,1]A_{i,j}\in[0,1])

也就是说fif_i就是随机[0,1][0,1]排列种上升的位置有ii个的概率(这里我们忽略了存在相同的数字,因为在实数里随机出两个同样的数字的概率基本无)

那这个东西,我们把随机排列nn中有ii个上升位置的方案数

就是欧拉数⟨ni⟩\left\langle\begin{matrix}n \\ i\end{matrix}\right\rangle

实际上我们有⟨ni⟩=∑(−1)i(n+1i)(m−i+1)n\left\langle\begin{matrix}n \\ i\end{matrix}\right\rangle=\sum(-1)^{i}\binom{n+1}{i}(m-i+1)^n

证明有亿点难

对于x1+x2+⋯+xn≤xxi≥0x_1+x_2+\dots+x_n \le x \quad x_i \ge 0的超立方体体积记作Vn(x)V_n(x)

容易发现h1(x)=xh_1(x)=x

Vi(x)=∫0nhi−1(t)dtV_i(x)=\int_0^nh_{i-1}(t)\rm{d}t

并不需要技巧就能得出Vi(n)=nii!V_i(n)=\frac{n^i}{i!}

考虑最原始的含义,∑i=0m⟨ni⟩\sum\limits_{i=0}^m\left\langle\begin{matrix}n \\ i\end{matrix}\right\rangle就是⌊s1⌋≤i+1\lfloor s_1\rfloor\le i+1的概率,容斥x>1x> 1的个数(因为Ai,j∈[0,1]A_{i,j}\in[0,1]),那么

∑i=0m⟨ni⟩=∑i=0m+1(−1)i(ni)Vn(m−i+1)\sum\limits_{i=0}^m\left\langle\begin{matrix}n \\ i\end{matrix}\right\rangle=\sum\limits_{i=0}^{m+1}(-1)^i\binom{n}{i}V_n(m-i+1)

差分一下就能得到⟨ni⟩=∑(−1)i(n+1i)(m−i+1)n\left\langle\begin{matrix}n \\ i\end{matrix}\right\rangle=\sum(-1)^{i}\binom{n+1}{i}(m-i+1)^n

这个是ini^n与(−1)i(n+1i)(-1)^i\binom{n+1}{i}的卷积,NTT O(nlog⁡n)O(n\log n)解决