题目描述
老师在一个不透明的纸袋里放入一些乒乓球,每个乒乓球上都有一个数字,当球放入之后,让小明从中随机拿一个。在球放入之后,小明抽之前,老师想让您帮忙编程先计算一下,拿到某个数字 x 的概率是多少? 比如:老师向袋子里面放入了 5 个球,对应的数字分别是 2 3 2 4 2 ,那么拿到数字 2 的概率为 3 / 5= 0 . 6 ,拿到数字 3 的概率为 11 / 55 = 00 . 22 。
输入格式
第一行是一个整数 n 代表袋子里球的个数( n <= 100100 )
第二行 n 个数,代表袋子里每个球上面的数字的值
第三行一个整数 x ,是要计算出现概率的数字( x 不一定在第二行的 n 个数中出现,也就是说 x 对应的球可能在袋子里没有)
输出格式
x 被拿到的概率(结果保留 2 位小数)
输入样例
5
2 3 2 4 2
2
输出样例
0.60
思路说明
首先我们先找x在序列n中有几个,再用个数/总数(概率计算公式),记得保留两位小数。
AC代码
#include<bits/stdc++.h>
using namespace std;
int main(){
double n,m,a[1001]={},cnt=0;
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i];
}
cin>>m;
for(int i=1;i<=n;i++){
if(a[i]==m){
cnt++;
}
}
printf("%.2lf",cnt/n);
return 0;
}