您的位置:首页 > 其它

51nod 1639 绑鞋带 (找规律题)

2017-10-21 17:19 344 查看
传送门51nod 1639

Input示例
2

Output示例
0.666667


思路:当有 n 条鞋带的时候,有 2*n 个端点,任意挑出 2 个端点连接有 C( 2*n , 2 ) 即 n * ( 2*n - 1 ) 种情况。我们会发现将两端点连接后原来的两条鞋带变成了一条,当然除一种情况外,那就是将同一条鞋带的两端连接。

这样,当有 n 条鞋带的时候的合理的连接方式有  C( 2*n , 2 ) - n  即 2*n * (n-1) 种,其中 n 就是 n 条鞋带自己和自己连接的情况。所以此时挑出 2 条鞋带并连接成功的概率为 2*n * (n-1) / n * ( 2*n - 1 ) ,化简得: 2 * ( n - 1 ) / ( 2*n
- 1 ) 。

上面说的只是当有 n 条鞋带的时候挑出 2 条连接的概率,这 2 条连接成功后,前面提到过,现有的鞋带数就变成了 n-1 条。然后再从这 n-1 条鞋带中取出 2 条连接,求连接成功概率……直到把所有鞋带连接成一个环,所求的答案就是概率的乘积。

对于 n 条鞋带,一共要求 n-1 次概率。

#include<stdio.h>
#include<math.h>
int main()
{
int i,n;
double ans;
while(~scanf("%d",&n))
{
ans=1;
for(i=0;i<n-1;i++)
{
ans*=(double)2*(n-1-i)/(2*n-1-2*i);
}
printf("%.6lf\n",ans);
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: