Chúng ta được đưa cho một cây gậy có độ dài bất kỳ và cây gậy đó có thể được bẻ ngẫu nhiên thành n mảnh có thể thuộc kiểu số nguyên hoặc dấu phẩy động và nhiệm vụ là tìm xem các mảnh vỡ có thể tạo thành một đa giác n cạnh.
Chúng ta có thể tính toán xác suất bằng cách áp dụng công thức
$$ P (E ^ {\ prime}) =1-P (E) =1- \ frac {n} {2 ^ {n-1}} $$
Trong đó, n là số mảnh được tạo ra khi bẻ thanh gậy thành nhiều phần.
Đầu vào
length = 10 , pieces = 4
Đầu ra
probability is : 0.5
Giải thích - được cung cấp với chiều dài kích thước 10 cm và nó được chia thành 4 phần
Đầu vào
length = 5 , pieces = 3
Đầu ra
probability is : 0.25
Giải thích - được cung cấp với kích thước dài 5 cm và nó được chia thành 3 phần
Phương pháp tiếp cận được sử dụng trong chương trình dưới đây như sau
-
Nhập chiều dài của thanh với số lượng mảnh mà nó có thể bẻ thành
-
Áp dụng công thức để tính xác suất
-
In kết quả
Thuật toán
Start Step 1→ Declare function to calculate the probability double probab(unsigned len, unsigned pieces) declare unsigned a = (1 << (pieces-1)) return 1.0 - ((double)pieces) / ((double)a) step 2→ In main() Declare unsigned pieces = 4, len = 10 Call probab(len, pieces) Stop
Ví dụ
#include<iostream> using namespace std; //function to calculate probability double probab(unsigned len, unsigned pieces){ unsigned a = (1 < (pieces-1)); return 1.0 - ((double)pieces) / ((double)a); } int main(){ unsigned pieces = 4, len = 10; cout <<"probability is : "<<probab(len, pieces); return 0; }
Đầu ra
Nếu chạy đoạn mã trên, nó sẽ tạo ra kết quả sau -
probability is : 0.5