有n根鞋带混在一起,现在重复n次以下操作:随机抽出两个鞋带头,把它们绑在一起。可以想象,这n次之后將不再有单独的鞋带头,n条鞋带系成了一些环。那么有多大概率刚好所有这些鞋带只形成了一个环?
Input
仅一行,包含一个整数n (2<=n<=1000)。
Output
输出一行,为刚好成环的概率。
Input示例
2
Output示例
0.666667
思路:
保证只有一个环--即在剩余绳子n>1时,下一个操作不让成环:单程概率为:不成欢/总数=(2*n -2)/(2*n -1);
概率相乘即可---
代码:
#include<cstdio>
int main()
{
double P;int n;
scanf("%d",&n);
P=1.0;
for (int i=n;i>1;i--)
{
P*=double(2*i-2)/(2*i-1);
}
printf("%lf\n",P);
return 0;
}