top1编程
← 返回题目
题解

【入门】拿到某个数的概率是多少?

1 条题解

  • 0
    @ 2026-7-31 16:04:09

    解题思路

    袋子里有 n 个球,每个球上有数字,随机拿一个球,问拿到数字 x 的概率。

    思路:

    1. 读入 n 个球的数字
    2. 统计数字 x 在袋子里出现多少次
    3. 概率 = x 出现的次数 ÷ 球的个数 n
    4. 保留 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