k[i]=i根鞋带 刚好系成一个环的概率
k[i]:考虑第i根鞋带的一头 可以系到第i根的另一头 和 其余i-1条的2头 显然 只有系到另外i-1条才可能成一个环 所以k[i] = k[i-1] * ( 2*(i-1) ) / ( 2*(i-1)+1 ) 递推下去就可以了 #include<iostream> #include<stdlib.h> #include<stdio.h> #include<string> #include<vector> #include<deque> #include<queue> #include<algorithm> #include<set> #include<map> #include<stack> #include<time.h> #include<math.h> #include<list> #include<cstring> #include<fstream> #include<queue> #include<sstream> //#include<memory.h> using namespace std; #define ll long long #define ull unsigned long long #define pii pair<int,int> #define INF 1000000007 #define pll pair<ll,ll> #define pid pair<int,double> int main() { //freopen("/home/lu/Documents/r.txt","r",stdin); //freopen("/home/lu/Documents/w.txt","w",stdout); int n; scanf("%d",&n); double ans =1; for(int i=2;i<=n;++i){ int k = 2*(i-1); ans = ans*k/(k+1); } printf("%f\n",ans); return 0; }