Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Xác suất xúc xắc lần 3 lớn hơn cả lần 1 và 2 trong C++


Ba người A, B, C tung xúc xắc 6 mặt. Tìm xác suất C được số lớn hơn cả A và B.

Phân tích

Giá trị lớn nhất của A và B: M = max(A, B). C cần > M.

Số mặt thỏa mãn: 6 - M (các mặt M+1, M+2, ..., 6).

Xác suất = (6 - M) / 6. Rút gọn phân số.

Ví dụ 1

Input – A = 3, B = 5

Output – 1/6

Giải thích: M = 5. Chỉ mặt 6 > 5. Xác suất = 1/6.

Ví dụ 2

Input – A = 2, B = 4

Output – 1/3

Giải thích: M = 4. Mặt 5,6 > 4. Xác suất = 2/6 = 1/3.

Ví dụ code

#include <bits/stdc++.h>
using namespace std;

void thirdDiceProbability(int a, int b) {
    int m = max(a, b);
    int favorable = 6 - m;
    int total = 6;
    
    if (favorable <= 0) {
        cout << "0/1" << endl;
        return;
    }
    
    int g = __gcd(favorable, total);
    cout << favorable/g << "/" << total/g << endl;
}

int main() {
    thirdDiceProbability(2, 2); // M=2, favorable=4 → 4/6=2/3
    thirdDiceProbability(3, 5); // 1/6
    thirdDiceProbability(1, 1); // 5/6
    return 0;
}

Kết quả

2/3
1/6
5/6

Mở rộng: Nếu xúc xắc có N mặt, xác suất = (N - max(a,b)) / N.