ความน่าจะเป็น Pi=(จำนวนผลลัพธ์ที่น่าพอใจ) / (จำนวนผลลัพธ์ทั้งหมด)
กำหนดเป็นตัวเลข N ซึ่งเป็นจำนวนคอนเทนเนอร์ที่มีอยู่ และเรามีสำเนาของตัวเลข X และ Y สองตัวจำนวน N ตัว ภารกิจคือการแบ่งสำเนาของตัวเลข X หนึ่งตัวออกเป็นคอนเทนเนอร์ N เพื่อให้ความน่าจะเป็นในการวาดสำเนาของ X นั้นสูงสุด จากด้านบนจะเห็นได้ว่าเพื่อเพิ่ม Pi ให้สูงสุด เราสามารถขยายตัวเศษให้มากที่สุด ( จำนวนผลลัพธ์ที่น่าพอใจ) หรือย่อตัวส่วนให้น้อยที่สุด (จำนวนผลลัพธ์ทั้งหมด) ซึ่งสามารถทำได้ในลักษณะที่มีเพียงคอนเทนเนอร์เดียวที่มีสำเนาของ Y และคอนเทนเนอร์ทั้งหมดมีสำเนาของ X คอนเทนเนอร์ N-1 มีสำเนาของ X แต่ละรายการ (สำเนา N-1 ของ X) และคอนเทนเนอร์ 1 รายการมีสำเนา Y และ N สำเนาของ Y 1 ชุด
ความน่าจะเป็น (สำเนาของ X จากคอนเทนเนอร์แรก (n-1)) =Pn-1 =1
ความน่าจะเป็น (สำเนาของ X จากคอนเทนเนอร์สุดท้าย) =Pn =1/(n+1)
Pm = Pn-1 * (n – 1) + Pn ∴ Pm = n / (n + 1)
ป้อนข้อมูล − N=1
ผลผลิต − ความน่าจะเป็นสูงสุดสำหรับ N=1 คือ 0.5
คำอธิบาย − เนื่องจากมีเพียง 1 คอนเทนเนอร์และ 1 สำเนาของ X และ Y ในแต่ละคอนเทนเนอร์ ความน่าจะเป็นสูงสุดของการวาด X คือ 0.5
ป้อนข้อมูล − N=3
ผลผลิต − ความน่าจะเป็นสูงสุดสำหรับ N=1 คือ 0.75
คำอธิบาย − ที่นี่ คอนเทนเนอร์ทั้งหมดมี X 1 สำเนา และคอนเทนเนอร์สุดท้ายมี Y ทั้งหมด 3 สำเนา
แนวทางที่ใช้ในโปรแกรมด้านล่างมีดังนี้
-
ป้อนค่าจำนวนเต็มสำหรับ N ซึ่งเป็นจำนวนคอนเทนเนอร์
-
ประกาศตัวแปรเพื่อเก็บค่าความน่าจะเป็นสูงสุดของ X พูด maxP
-
สำหรับ N ที่กำหนด ให้คำนวณ maxP เป็น N/(N+1)
ตัวอย่าง
#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; }
ผลลัพธ์
หากเราเรียกใช้โค้ดข้างต้น มันจะสร้างผลลัพธ์ต่อไปนี้ -
Maximum Probability for N = 3 is, 0.75