Computer >> Máy Tính >  >> Lập trình >> C ++

Xác suất nhận được tổng khi ném 2 chữ số N lần trong C ++

Chúng ta được cung cấp tổng và số lần cặp xúc xắc được ném làm đầu vào và nhiệm vụ là xác định xác suất nhận được tổng đã cho khi ném một cặp xúc xắc N lần.

Xác suất là cơ hội nhận được đầu ra mong muốn từ tập dữ liệu có sẵn. Phạm vi xác suất nằm trong khoảng từ 0 đến 1 trong đó số nguyên 0 cho thấy khả năng không thể xảy ra và 1 cho thấy sự chắc chắn.

Ví dụ

Input-: sum = 12, N = 1
Output-: Probability = 1/36
Explanation-: if a pair of dice is thrown once then the combinations will be
(1, 1), (1, 2), (1, 3), (1, 4), (1, 5), (1, 6), (2, 1), (2, 2), (2, 3), (2, 4),
(2, 5), (2, 6), (3, 1), (3, 2), (3, 3), (3, 4), (3, 5), (3, 6), (4, 1), (4, 2),
(4, 3), (4, 4), (4, 5), (4, 6), (5, 1), (5, 2), (5, 3), (5, 4), (5, 5), (5, 6),
(6, 1), (6, 2), (6, 3), (6, 4), (6, 5), (6, 6). Out of these combinations we can
get sum 12 at pair (6, 6) only therefore probability would be 1/36

Input-: sum = 4 and N = 6
Output-: probability is : 1/2985984

Phương pháp tiếp cận được sử dụng trong chương trình dưới đây như sau -

  • Nhập giá trị của tổng và N cho biết số lần ném xúc xắc
  • Để tính toán xác suất xảy ra tổng khi ném 2 con xúc xắc N lần, hãy áp dụng công thức này: (thuận lợi / tổng) ^ N
  • Bây giờ hãy tính xác suất xảy ra tổng khi ném 2 con xúc xắc 1 lần, sẽ là 1
  • để tính Xác suất xảy ra tổng khi ném 2 con xúc xắc N lần nó sẽ là -
  • Probability2 =(Probability 1) ^ N. tức là Probability1 nâng lên thành lũy thừa N

Thuật toán

Start
Step 1-> declare function to calculate the probability
   int probability(int sum, int times)
   Declare and set float res = 0.0 and total = 36.0
   Declare and set long int probab = 0
   Loop For i = 1 and i <= 6 and i++
      Loop For j = 1 and j <= 6 and j++
         IF ((i + j) = sum)
            Set res++
         End
      End
   End
   Declare and set int gcd1 = __gcd((int)res, (int)total)
   Declare and set res = res / (float)gcd1
   Set total = total / (float)gcd1
   Set probab = pow(total, times)
   return probab
Step 2-> In main()
   Declare and set int sum = 4 and times = 6
   Call probability(sum, times)  
Stop

Ví dụ

#include <bits/stdc++.h>
using namespace std;
// function that calculates the Probability of getting a sum on throwing 2 Dices N times
int probability(int sum, int times) {
   float res = 0.0, total = 36.0;
   long int probab = 0;
   for (int i = 1; i <= 6; i++) {
      for (int j = 1; j <= 6; j++) {
         if ((i + j) == sum)
         res++;
      }
   }
   int gcd1 = __gcd((int)res, (int)total);
   res = res / (float)gcd1;
   total = total / (float)gcd1;
   probab = pow(total, times);
   return probab;
}
int main() {
   int sum = 4, times = 6;
   cout<<"probability is : ";
   cout << "1" << "/" << probability(sum, times);
   return 0;
}

Đầu ra

probability is : 1/2985984