Description
在OI界存在着一位传奇选手——QQ,他总是以风格迥异的搞笑代码受世人围观
某次某道题目的输入是一个排列,他使用了以下伪代码来生成数据
while 序列长度
Input
一个正整数n,表示需要生成一个n排列
Output
一个数表示期望随机次数,保留整数
Sample Input
4
Sample Output
8(.333333…)
【友情提示】
输出样例的括号里表示答案的小数部分,但实际丌要求输出
数学期望=sigma(概率* 权值),本题中为期望随机次数=sigma(概率 *随机次数)
Data Constraint
30%数据满足n≤3
80%数据满足n≤10^7
100%数据满足n≤2^31
思路
首先不容易推出方程式。
定义 Fi 表示序列长度为 i 时的期望随机次数,丌难根据题目的定义列出递推式,
F(i)=i/n* (F(i)+1)+(n-i)/n*(F(i-1)+1),解得 F(i)=F(i-1)+n/(n-i)
所以
Ans=∑i=1nni=n∗∑i=1n1i
n=10^7就80分,所以就打表就好了
解法
说是要什么欧拉常数那个东西,不懂啦。。。。
代码
打表就不给了。。