前言
- 记得去年模拟赛有类似的题目,当时问 lmy,给了我一些直观的感受,没理解,最后不了了之。
- 今年又碰到了,去问了问 gqh,又给了我一些直观感受,还是没理解,哎呦,我好菜呀。
- 最后 rj 说的,好像也没理解,看来只能固执地,理解我自己的想法了
- 啊,这不是事情的最后,shy 又说可以不看成排列,看成序列
- tt 又给出了,直接不转化的做法
- 不管怎么说,最后自己自圆其说了一下,顾有此篇,嗯 \bx\bx\bx 他们。
排列不会一点
- 有一个集合 \(S={1,2,\cdots,n}\),每次在 \(S\) 中随机选取一个数 \(p\),并删除 \(S\) 中 \(p\) 以及 \(p\) 的倍数。
- 求期望选出多少个数后 \(S\) 被删没
最朴素的想法往往来源于模拟
- 这也是我最迷惑的地方,我感觉,题解缺少对这种转化的正确性的说明,或者有什么更简单的理解方式我理解不到。
- 那肯定是一个一个删数啦。由于期望的定义,想想我们要 求得是什么。
- 设每一次删除的一组有 \(o_i\) 个数,那么概率为 \(\frac{1}{\prod_i(\sum_{k=1}^iO_k)}\) 这很自然,就是我们每次均匀随机的概率
- 此时删了多少个数呢,也就是 \(|o|\)。
- 故此,期望就是 \(\sum\limits_{o}|o|\frac{1}{\prod_i(\sum_{k=1}^iO_k)}\)
接着我们进一步思考
-
记得有这样一类问题,从 \(n\) 个不同的球,从中拿出两个球,问有多少种可能
-
若是区分第一次拿出,和第二次拿出又会怎样。
-
陈老师讲过,用 \(\{1,2\},(1,2)\) 集合与二元组就可以巧妙的区分他们。
-
\((1,2)\not=(2,1)\) 然而 \(\{1,2\}=\{2,1\}\)。
-
咦,这与今天我们讨论的内容有什么关系呢?
-
若我们把二元组的的计数,看所是更基本的计数,那么集合的计数,是不是就是在二元组的计数上乘了一个为 \(2\) 的权重。
-
什么意思,其实我想表述的是,从 \(n\) 个不同的球中拿出两个球为 \({1,2}\) 的概率可以是 \(\frac{|\{(1,2),(2,1)\}|}{n(n-1)}=\frac{|\{\{1,2\}\}|\times w}{n(n-1)}\)
-
此时 \(w=2\) 就是,我想说的权重。
-
咦,我们比较会枚举什么,这种删除不好枚举,可我们有排列呀!
-
若我们枚举排列,我们按照排列做原题的删数,只保存第一次删的数,组成的新序列叫做原排列的生成序列(自己起的名字)
-
那么一个生成序列可以由多个排列生成,而我们发现对应的排列的个数恰好为,生成序列在原题意义下的出现概率分之 \(1\)。
-
接着,我们尝试证明这件事。
-
还是沿用之前,设每组删除 \(o_i\) 个数,显然 \(\sum o_i=n\),然后我们考虑组合数合并
\[\begin{aligned}
&=(\prod (O_i-1)!)(\prod\binom{\sum\limits_{k=i}^n O_k-1}{O_k-1})\\
&=\prod_{i=1}^n(\prod_{\sum_{k=i-1}^n O_k+1}^{\sum_{k=i}^n O_k-1})\\
&=\frac{n!}{\prod_i(\sum_{k=1}^iO_k)}
\end{aligned}
\]
- 这统计的是可达生序序列 \(O\) 的排列个数,而这个个数乘随机排列的概率恰好为
\[\frac{n!}{\prod_i(\sum_{k=1}^iO_k)}\cdot\frac{1}{n!}=\prod_i\frac{1}{(\sum_{k=1}^iO_k)}
\]
- 这正好等于原题目,生成序列对应的概率。
- 其实我们还可以思考,无限长序列,与生成序列的关系。其实证明只考虑序列转排列,是占了 \(\frac{n!}{n^n}\) 的权重
总结
- 由此,凡是形如,集合,每次删一组,求期望次数的问题,我们都可以转化为枚举排列,算可贡献生成序列的次数乘排列的期望。
直接做本题
- 假设我们直接做,已经删除了一些数,若 \(v\) 想做贡献,那么所有 \(v\) 的约数,都不能在它之前被删除。所以对于任何情况下选出 \(v\) 以及 \(v\) 约数的概率都是一样的,所以直接累加概率亦是答案
至于本题
- 我们显然可以枚举排列,考虑每一个数的贡献,它被统计答案,当且仅当在,所有排列中,它的约数中,它排名第一,那概率就是约数个数分之 \(1\)。乘排列个数 \(n!\) 就是总方案数,至于期望在除 \(n!\) 即为答案。最后 \(Min25\) 板子即可。