เราได้รับแท่งไม้ที่มีความยาวเท่าใดก็ได้ และแท่งนั้นสามารถแบ่งสุ่มเป็น n ชิ้น ซึ่งสามารถเป็นชนิดจำนวนเต็มหรือจุดลอยตัว และงานคือการค้นหาว่าชิ้นที่หักนั้นสามารถทำได้หรือไม่ สร้างรูปหลายเหลี่ยมด้าน n
เราคำนวณความน่าจะเป็นได้โดยใช้สูตร
$$P(E^{\prime})=1-P(E)=1-\frac{n}{2^{n-1}}$$
โดยที่ n คือจำนวนชิ้นที่เกิดจากการตัดไม้ออกเป็นส่วน ๆ
ป้อนข้อมูล
length = 10 , pieces = 4
ผลผลิต
probability is : 0.5
คำอธิบาย − ให้มีขนาดความยาว 10 ซม. และแบ่งเป็น 4 ส่วน
ป้อนข้อมูล
length = 5 , pieces = 3
ผลผลิต
probability is : 0.25
คำอธิบาย − ให้มีความยาวขนาด 5 ซม. และแบ่งเป็น 3 ส่วน
แนวทางที่ใช้ในโปรแกรมด้านล่างมีดังนี้
-
ใส่ความยาวของแท่งด้วยจำนวนชิ้นที่แยกออกได้
-
ใช้สูตรคำนวณความน่าจะเป็น
-
พิมพ์ผลลัพธ์
อัลกอริทึม
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
ตัวอย่าง
#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; }
ผลลัพธ์
หากรันโค้ดด้านบน มันจะสร้างผลลัพธ์ต่อไปนี้ -
probability is : 0.5