Hdu-6243 2017CCPC-Final A.Dogs and Cages 数学

题面

题意:问1~n的所有的排列组合中那些,所有数字 i 不在第 i 位的个数之和除以n的全排,即题目所说的期望,比如n=3 

        排列有123(0),132(2),231(3),213(2),312(3),321(2)  ans=(0+2+3+2+3+2)/6=2

题解: 发现当1在1的位置上的时候,有 (n-1) ! 种情况

         那么1不在它的位置上有 n! - (n-1) !  种情况

         一共有 n 个这样的数字,所以乘n

        最后除以 n!,化简得到 n-1

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 int main()
 4 {
 5     int caseCnt;
 6     scanf("%d",&caseCnt);
 7     int t=0;
 8     while(caseCnt--) {
 9         int n;
10         scanf("%d",&n);
11         printf("Case #%d: %.10lf
",++t,n-1.0);
12     }
13     return 0;
14 }
原文地址:https://www.cnblogs.com/qywhy/p/9757910.html