题解
【入门】拿到某个数的概率是多少?
1 条题解
-
0
解题思路
袋子里有 n 个球,每个球上有数字,随机拿一个球,问拿到数字 x 的概率。
思路:
- 读入 n 个球的数字
- 统计数字 x 在袋子里出现多少次
- 概率 = x 出现的次数 ÷ 球的个数 n
- 保留 2 位小数
概率怎么算? 每个球被拿到的机会一样大,所以拿到 x 的概率 = 含 x 的球数 ÷ 总球数。
举例:5 个球数字 2 3 2 4 2,求拿到 2 的概率
- 2 出现 3 次
- 概率 = 3÷5 = 0.6
参考代码
#include <iostream> #include <iomanip> using namespace std; int main() { int n, a[100], x, s = 0; cin >> n; for (int i = 0; i < n; i++) cin >> a[i]; cin >> x; for (int i = 0; i < n; i++) { if (a[i] == x) s++; // 统计出现次数 } cout << fixed << setprecision(2) << s * 1.0 / n; return 0; }复杂度分析
- 时间复杂度:O(N),遍历一遍
- 空间复杂度:O(N),存球的数组
- 1