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

ความน่าจะเป็นที่จะได้รับมูลค่ามากขึ้นในการโยนลูกเต๋าที่สามใน C ++


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

ในการตรวจสอบความน่าจะเป็นที่จะได้รับมูลค่ามากขึ้น เราต้องจำไว้ว่ามูลค่าของการโยนลูกเต๋าครั้งที่สามนั้นสูงกว่าสองครั้งก่อนหน้านั้น

เช่นเดียวกับ A โยนลูกเต๋าและให้คะแนน 2 และ B โยนลูกเต๋าและทำคะแนน 3 ดังนั้นความน่าจะเป็นที่ C จะได้รับค่าที่สูงขึ้นคือ 3/6 =1/2 เพราะมีเพียง 3 ค่าที่สูงกว่า A และ B นั่นคือ 4, 5 และ 6 ดังนั้นความน่าจะเป็นจะเป็น 1/2 หลังจากที่ลดลง

ดังนั้นควรลดผลลัพธ์ที่ได้ลงไปอีก

ป้อนข้อมูล

A = 3, B = 5

ผลผลิต

1/6

คำอธิบาย − ค่าเดียวที่มากกว่าทั้ง 3 และ 5 คือ 6 ดังนั้น 1/6 คือความน่าจะเป็น

ป้อนข้อมูล

A = 2, B = 4

ผลผลิต

1/3

คำอธิบาย − ค่าที่มากกว่าทั้ง 2 และ 4 คือ 5 และ 6 ที่มีความน่าจะเป็น 2/6 ซึ่งสามารถลดลงเหลือ 1/3

แนวทางที่ใช้ด้านล่างมีดังต่อไปนี้ในการแก้ปัญหา

  • เราจะหาค่าสูงสุดจากค่า A และ B

  • ลบค่าสูงสุดของ A และ B จาก 6 และคำนวณ gcd ด้วย 6

  • ส่งคืนผลลัพธ์

อัลกอริทึม

Start
Step 1→ probability of getting more value in third dice
   void probab_third(int a, int b)
      declare int c = 6 - max(a, b)
      declare int GCD = __gcd(c, 6)
      Print GCD
Step 2→ In main()
   Declare int a = 2, b = 2
   Call probab_third(a, b)
Stop

ตัวอย่าง

#include <bits/stdc++.h>
using namespace std;
//probability of getting more value in third dice
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