Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

ความน่าจะเป็นที่การทอยลูกเต๋าครั้งที่ 3 ได้ค่ามากกว่าครั้งที่ 1 และ 2 ใน C++


กำหนดให้ผู้เล่น 3 คน A, B, C ทอยลูกเต๋า ต้องการหาความน่าจะเป็นที่ C ทอยได้ค่ามากกว่าทั้ง A และ B

ตัวอย่างที่ 1

Input: A = 3, B = 5
Output: 1/6
คำอธิบาย: ค่าที่มากกว่า 3 และ 5 คือแค่ 6 → 1/6

ตัวอย่างที่ 2

Input: A = 2, B = 4
Output: 1/3
คำอธิบาย: ค่าที่มากกว่า 2 และ 4 คือ 5 และ 6 → 2/6 = 1/3

แนวทางแก้ปัญหา

  1. หาค่าสูงสุดระหว่าง A และ B
  2. ลบค่าสูงสุดนั้นออกจาก 6 → ได้จำนวนผลลัพธ์ที่เป็นไปได้
  3. หาตัวหารร่วมมาก (GCD) กับ 6 เพื่อลดรูปเศษส่วน
  4. แสดงผลเป็นเศษส่วนที่ลดรูปแล้ว

โค้ดตัวอย่าง

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

void probab_third(int a, int b) {
    int c = 6 - max(a, b);
    int GCD = __gcd(c, 6);
    cout << "probability of getting more value in third dice : "
         << c / GCD << "/" << 6 / GCD;
}

int main() {
    int a = 2, b = 2;
    probab_third(a, b);
    return 0;
}

ผลลัพธ์

probability of getting more value in third dice : 2/3

คำอธิบาย: เมื่อ A=2, B=2 ค่าสูงสุดคือ 2 ค่าที่มากกว่า 2 คือ 3,4,5,6 (4 ค่า) → 4/6 = 2/3