HPU-- 1190 確率
生活随笔
收集整理的這篇文章主要介紹了
HPU-- 1190 確率
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目描述
話說當年語文考滿分的你認識標題第一個字嗎?
?
HPU有很多內湖,湖里面放養了很多金魚(還有黑白天鵝?),每天都會有很多小伙伴在湖邊看金魚在水中嬉戲(黑白天鵝打架?)。
Ocean是一個善于思考的好孩子,今天他給你出了一道題目:假設湖中一共有$N$條金魚,現在Ocean隨機挑出兩條金魚,問這兩條金魚顏色不同的概率?
為了降低題目難度,Ocean認為金魚只會有$6$種不同的顏色,即$1,2,3,4,5,6。$
PS:在挑出來第二條魚之前,Ocean是不會將第一條魚放入湖中的。
輸入
第一行輸入一個整數$T$,代表有$T$組測試數據。每組數據占兩行,第一行輸入一個整數$N$代表上面提到的信息。
下面一行輸入$N$個整數$color_i$,代表第$i$條金魚的顏色。
當$color_i = 1$,代表第$i$條金魚的顏色為$1$,其它依次類推。
注:$1 <= T <= 100,2 <= N <= 100,1 <= color_i <= 6。$
輸出
對每組測試數據,輸出一個浮點數代表最后的結果,要求保留兩位小數。樣例輸入
2 4 1 1 2 2 2 2 2樣例輸出
0.67 0.00思路:1-相同顏色的概率;
代碼: 1 #include<cstdio> 2 #include<cstring> 3 int jiecheng(int x) 4 { 5 if(x==1) 6 return 1; 7 return x*jiecheng(x-1); 8 } 9 int main() 10 { 11 int t,n,a[105],b[6]; 12 scanf("%d",&t); 13 while(t--) 14 { 15 memset(b,0,sizeof(b)); 16 scanf("%d",&n); 17 for(int i=0;i<n;i++) 18 { 19 scanf("%d",&a[i]); 20 if(a[i]==1) b[0]++; 21 if(a[i]==2) b[1]++; 22 if(a[i]==3) b[2]++; 23 if(a[i]==4) b[3]++; 24 if(a[i]==5) b[4]++; 25 if(a[i]==6) b[5]++; 26 } 27 int sum=0; 28 for(int i=0;i<6;i++) 29 { 30 if(b[i]>=2) //同種顏色,魚的個數大于等于2,從中取2條計算概率,然后求和 31 sum+=(b[i]*(b[i]-1))/2; 32 } 33 double m=n*(n-1)/2; //總魚中隨機取2條的概率 34 printf("%.2lf\n",1-(double)(sum)/m); 35 36 } 37 return 0; 38 }
?
轉載于:https://www.cnblogs.com/hss-521/p/7372207.html
總結
以上是生活随笔為你收集整理的HPU-- 1190 確率的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 尘屿芑芑意啥意思怎么读?
- 下一篇: SqlServer清空数据表数据