1
5
3 3 3 3 4
一共有5个人,每个人的朋友数为5-1个就是4个。对于测试数据3,
有3个好盆友, 1个不是;1*3表示一个好盆友和一个不是组合起来,
既关系不同的情况。
然后把每个人的情况累加。接着除以所有情况C(3)(5);最后1.0-这个值就可以了。
#include<iostream>
#include<stdio.h>
using namespace std;
int C(int m, int n)
{
int i, sum = 1;
for( i=m; i > m-n; i-- )
sum *= i;
for( i=n; i > 0; i-- )
sum /= i;
return sum;
}
int main()
{
int T;
scanf("%d", &T);
while(T--)
{
int i, n, sum = 0, t;
scanf("%d", &n);
for( i=0; i < n; i++ )
{
scanf("%d", &t);
sum += t * (n-1 - t);
}
sum /= 2;
printf("%.3lf\n", 1.0 - (double)sum / C(n, 3));
}
return 0;
}