【集训队作业2018】矩阵玩小凹
题意:
一个n×m的矩阵An,m,其中的元素是[0,1]中的随机实数,设si=∑Ai,j求Ex(⌊minsi⌋k)
(因为没发现能交的地方,random了几组数据放在了矩阵玩小凹上(并不保证写对了))
解:
因为每一行本质相同,所以我们只考虑第一行
记fi为⌊s1⌋=i的概率,di是⌊min(si)⌋=i的概率,那么答案就是i=1∑m−1ikdi
同时di=(j=i∑nfj)n−(j=i+1∑nfj)n
这都是好算的,我们考虑fi怎么算
记gi=∑j=1iA1,j−⌊∑j=1iA1,j⌋,容易发现这也是[0,1]内随机生成的
那么⌊s1⌋=i=2∑m[gi<gi−1]
因为如果当前的gi小于上一个gi−1说明一定“溢出”了一个整数位(因为Ai,j∈[0,1])
也就是说fi就是随机[0,1]排列种上升的位置有i个的概率(这里我们忽略了存在相同的数字,因为在实数里随机出两个同样的数字的概率基本无)
那这个东西,我们把随机排列n中有i个上升位置的方案数
就是欧拉数⟨ni⟩
实际上我们有⟨ni⟩=∑(−1)i(in+1)(m−i+1)n
证明有亿点难
对于x1+x2+⋯+xn≤xxi≥0的超立方体体积记作Vn(x)
容易发现h1(x)=x
Vi(x)=∫0nhi−1(t)dt
并不需要技巧就能得出Vi(n)=i!ni
考虑最原始的含义,i=0∑m⟨ni⟩就是⌊s1⌋≤i+1的概率,容斥x>1的个数(因为Ai,j∈[0,1]),那么
i=0∑m⟨ni⟩=i=0∑m+1(−1)i(in)Vn(m−i+1)
差分一下就能得到⟨ni⟩=∑(−1)i(in+1)(m−i+1)n
这个是in与(−1)i(in+1)的卷积,NTT O(nlogn)解决