「51Nod1639」綁鞋帶(概率
阿新 • • 發佈:2018-10-26
group 包含 sta anti cor 兩個 radi 想象 src
1639 綁鞋帶 基準時間限制:1 秒 空間限制:131072 KB 分值: 20 難度:3級算法題 收藏 關註 有n根鞋帶混在一起,現在重復n次以下操作:隨機抽出兩個鞋帶頭,把它們綁在一起。可以想象,這n次之後將不再有單獨的鞋帶頭,n條鞋帶系成了一些環。那麽有多大概率剛好所有這些鞋帶只形成了一個環? Input
僅一行,包含一個整數n (2<=n<=1000)。Output
輸出一行,為剛好成環的概率。Input示例
2Output示例
0.666667
題解
考慮當前已經打了$i$個結,
那麽當前還有$2*n-2*i$個鞋帶頭,
其中你捏住了一個,還剩$2*n-2*i-1$個鞋帶頭,
這其中只有一個(跟你捏住的在同一根繩上的)鞋帶頭是不可以打結的,
所以這一步能打一個符合要求的結的概率為$\frac{2*n-2*i-2}{2*n-2*i-1}$.
$i$從$0$循環到$n-2$,當打了$n-1$個結時停下.(因為$n-1$個結時已經成一條鏈了).
答案就是累乘的結果.
1 /* 2 C++ 3 15 ms 4 2108 KB 5 Accepted 6 2018/10/26 7 17:01:37 8 */ 9 #include<iostream> 10 #include<cstdio> 11using namespace std; 12 int main() 13 { 14 //freopen("a.in","r",stdin); 15 int n; 16 scanf("%d",&n); 17 double ans=1; 18 for(int i=0;i<n-1;++i) 19 { 20 ans*=(double)(2*n-(2*i)-2)/(2*n-(2*i)-1); 21 } 22 cout<<ans; 23 return 0; 24 }
「51Nod1639」綁鞋帶(概率