Description
话说当年语文考满分的你认识标题第一个字吗?
HPU有很多内湖,湖里面放养了很多金鱼(还有黑白天鹅?),每天都会有很多小伙伴在湖边看金鱼在水中嬉戏(黑白天鹅打架?)。
Ocean是一个善于思考的好孩子,今天他给你出了一道题目:假设湖中一共有$N$条金鱼,现在Ocean随机挑出两条金鱼,问这两条金鱼颜色不同的概率?
为了降低题目难度,Ocean认为金鱼只会有$6$种不同的颜色,即$1,2,3,4,5,6。$
PS:在挑出来第二条鱼之前,Ocean是不会将第一条鱼放入湖中的。
Input
第一行输入一个整数$T$,代表有$T$组测试数据。
每组数据占两行,第一行输入一个整数$N$代表上面提到的信息。
下面一行输入$N$个整数$color_i$,代表第$i$条金鱼的颜色。
当$color_i = 1$,代表第$i$条金鱼的颜色为$1$,其它依次类推。
注:$1 <= T <= 100,2 <= N <= 100,1 <= color_i <= 6。$
每组数据占两行,第一行输入一个整数$N$代表上面提到的信息。
下面一行输入$N$个整数$color_i$,代表第$i$条金鱼的颜色。
当$color_i = 1$,代表第$i$条金鱼的颜色为$1$,其它依次类推。
注:$1 <= T <= 100,2 <= N <= 100,1 <= color_i <= 6。$
Output
对每组测试数据,输出一个浮点数代表最后的结果,要求保留两位小数。
Sample Input
2 4 1 1 2 2 2 2 2
Sample Output
0.670.00
#include <stdio.h> int a[105]; int main() { int t; scanf("%d",&t); while(t--) { int n;double sum=0; int b[6]={0}; scanf("%d",&n); for(int i=0; i<n; i++) { scanf("%d",&a[i]); } for(int j=0; j<n; j++) { if(a[j]==1) b[0]++; else if(a[j]==2) b[1]++; else if(a[j]==3) b[2]++; else if(a[j]==4) b[3]++; else if(a[j]==5) b[4]++; else if(a[j]==6) b[5]++; } for(int j=0; j<6; j++) { sum+=b[j]*1.0/n*(b[j]-1)/(n-1); } printf("%.2lf\n",1-sum); } return 0; }