思路:
通过前一次成单环的概率推过来,索要变换的概率是 插入之前的环/自己成环的+插入之前的环;
#include <cstdio>
#include<cstring>
#include <vector>
#include <algorithm>
#include <iostream>
#include <queue>
using namespace std;
const int maxn=100005;
int main()
{
double ans=1;
int n;
cin>>n;
for(int i=2;i<=n;i++)
{
ans=ans*(2.0*i-2.0)/(2.0*i-1);
}
cout<<ans<<endl;;
}
有n根鞋带混在一起,现在重复n次以下操作:随机抽出两个鞋带头,把它们绑在一起。可以想象,这n次之后將不再有单独的鞋带头,n条鞋带系成了一些环。那么有多大概率刚好所有这些鞋带只形成了一个环?
Input
仅一行,包含一个整数n (2<=n<=1000)。
Output
输出一行,为刚好成环的概率。
Input示例
2
Output示例
0.666667