51nod 1639 绑鞋带 (找规律题)
2017-10-21 17:19
344 查看
传送门:51nod 1639
Input示例
Output示例
思路:当有 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;
}
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;
}
相关文章推荐
- 51NOD 1639 绑鞋带 递推
- 51nod 1639 绑鞋带
- 51nod 1639: 绑鞋带
- 51nod 1639绑鞋带(组合数学)
- 51nod 1639 绑鞋带 (组合数学)
- 51nod 1639 绑鞋带(递推)
- 51NOD:1639-绑鞋带
- 51Nod-1639-绑鞋带
- 51nod-【1639 1639 绑鞋带】
- 51NOD 1639 绑鞋带 【水】
- 51NOD 1639 绑鞋带(组合数学 + 递推)
- 51NOD 1639 绑鞋带 数学
- 51nod 1639 绑鞋带
- 51nod 1639 绑鞋带(递推)
- 51nod 1639 绑鞋带
- 51NOD 1491 黄金系统 && Codeforces 458 A. Golden System(斐波那契数列 + 找规律)
- 51nod 1639 递推
- 51Nod 1305 Pairwise Sum and Divide(规律、数学)
- 51nod 1070 Bash游戏 V4(博弈——找规律)
- 4000 规律-51nod-1305 Pairwise Sum and Divide