ความน่าจะเป็น P = (ผลลัพธ์ที่ต้องการ) / (ผลลัพธ์ทั้งหมด)
กำหนดให้มี N ภาชนะ และมีจำนวน N ชุดของตัวเลข 2 ประเภท คือ X และ Y งานคือแบ่งตัวเลข X ไปใน N ภาชนะ ให้โอกาสในการจับได้ X สูงสุด
เพื่อให้ P สูงสุด สามารถทำได้โดย:
- เพิ่มตัวเศษ (ผลลัพธ์ที่ต้องการ) หรือ
- ลดตัวส่วน (ผลลัพธ์ทั้งหมด)
วิธีที่ดีที่สุด: ให้ N-1 ภาชนะ มีแค่ X อย่างละ 1 ตัว (รวม N-1 ตัว) และภาชนะสุดท้ายมี 1 Y + N X (รวม N+1 ตัว)
ดังนั้น:
P(X จาก N-1 ภาชนะแรก) = 1
P(X จากภาชนะสุดท้าย) = 1/(N+1)
Pmax = 1 × (N-1)/N + (1/(N+1)) × 1/N
= (N-1)/N + 1/(N(N+1))
= (N² - 1 + 1) / (N(N+1))
= N/(N+1)
ตัวอย่าง
N = 1
Output: 0.5
มี 1 ภาชนะ 1 X และ 1 Y → โอกาส = 1/2 = 0.5
N = 3
Output: 0.75
3 ภาชนะ: 2 ภาชนะแรกมี X อย่างละ 1, ภาชนะสุดท้ายมี 3 Y + 3 X = 6 ตัว → P = 3/4 = 0.75
แนวทางแก้ปัญหา
- รับค่า N (จำนวนภาชนะ)
- คำนวณ
maxP = N / (N + 1)(ใช้ floating point division) - แสดงผล
ตัวอย่างโค้ด
#include <iostream>
#include <iomanip>
using namespace std;
int main() {
int N = 3;
double maxP = static_cast<double>(N) / (N + 1);
cout << fixed << setprecision(4);
cout << "Maximum Probability for N = " << N << " is: " << maxP << endl;
return 0;
}
ผลลัพธ์
Maximum Probability for N = 3 is: 0.7500
ตารางค่าตัวอย่าง
| N | สูตร N/(N+1) | ค่าทศนิยม |
|---|---|---|
| 1 | 1/2 | 0.5000 |
| 2 | 2/3 | 0.6667 |
| 3 | 3/4 | 0.7500 |
| 4 | 4/5 | 0.8000 |
| 5 | 5/6 | 0.8333 |
| 10 | 10/11 | 0.9091 |
| 100 | 100/101 | 0.9901 |
เมื่อ N → ∞ ความน่าจะเป็นจะเข้าใกล้ 1