递推 hdu 2048
t
关于错排
共n个数
第n个 和一个交换 其他n-2错排 (n-1)*z[n-2];
n-1个错排 第n个和n-1个交换 (n-1)*z[n-1];
求和
然后概率的话要除n!
一个一个除
#include<stdio.h> #include<string.h> #include<algorithm> #include<math.h> using namespace std; #define MAXN 105 double z[MAXN]; int main() { int t; z[1]=0; z[2]=1; for(int i=3;i<=20;i++) z[i]=(i-1)*(z[i-1]+z[i-2]); scanf("%d",&t); while(t--) { int n; scanf("%d",&n); double ans=z[n]; for(int i=1;i<=n;i++) ans/=i; printf("%.2lf%%\n",ans*100); } return 0; }
posted on 2016-12-30 15:15 HelloWorld!--By-MJY 阅读(100) 评论(0) 编辑 收藏 举报