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

Tối đa hóa xác suất của một loại từ N vùng chứa trong C ++


Xác suất Pi =(Số kết quả thuận lợi) / (Tổng số kết quả).

Cho trước là số N là số lượng vùng chứa có mặt. Và chúng ta có N bản sao của hai số X và Y. Nhiệm vụ là chia các bản sao của một số X vào N thùng chứa sao cho xác suất vẽ được một bản sao của X là lớn nhất. Từ trên có thể thấy rằng để tối đa hóa số Pi, chúng ta có thể tối đa hóa tử số (Số kết quả thuận lợi) hoặc tối thiểu hóa mẫu số (Tổng số kết quả). Điều này có thể được thực hiện theo cách mà chỉ một vùng chứa có bản sao của Y và tất cả các vùng chứa đều có bản sao của X. N-1 vùng chứa có một bản sao của X mỗi vùng (N-1 bản sao của X). Và 1 vùng chứa có 1 bản sao Y và N bản sao Y.

Xác suất (bản sao của X từ (n-1) vùng chứa đầu tiên) =P n-1 =1

Xác suất (bản sao của X từ vùng chứa cuối cùng) =P n =1 / (n + 1)

Pm = Pn-1 * (n – 1) + Pn
∴ Pm = n / (n + 1)

Đầu vào - N =1

Đầu ra - Xác suất tối đa cho N =1 là 0,5

Giải thích - Vì chỉ có 1 thùng chứa và 1 bản sao của X và Y mỗi cái trong đó. Xác suất vẽ X tối đa là 0,5.

Đầu vào - N =3

Đầu ra - Xác suất tối đa cho N =1 là 0,75

Giải thích - Ở đây Tất cả các vùng chứa có 1 bản sao của X và hộp cuối cùng có tất cả 3 bản sao của Y.

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

  • Nhập một giá trị nguyên cho N là số lượng vùng chứa.

  • Khai báo một biến để lưu trữ xác suất tối đa của X giả sử là maxP.

  • Đối với N đã cho, hãy tính maxP là N / (N + 1).

Ví dụ

#include <bits/stdc++.h>
using namespace std;
int main(){
   int N=3;
   double maxP = (double)N / (N + 1);
   cout << "Maximum Probability for N = " << N << " is, " <<maxP << endl;
   return 0;
}

Đầu ra

Nếu chúng ta chạy đoạn mã trên, nó sẽ tạo ra kết quả sau -

Maximum Probability for N = 3 is, 0.75