সমাধান — Chapter 2.1: Sample Spaces, Axioms & Counting-Based Probability¶
অধ্যায়
part-2-probability-foundations/02-01-sample-spaces-axioms.md-এর §৭ অনুশীলনীর পূর্ণ সমাধান।
৭.১ Conceptual¶
Q1 (★) — Sample space লেখা¶
(ক) মুদ্রা \(3\) বার toss। প্রতিবার H/T, ক্রম গুরুত্বপূর্ণ:
(0.2-এর multiplication principle: \(2\times2\times2\)।)
(খ) দুই আলাদা পাশার যোগফল। এখানে দুটো ভাবে \(\Omega\) ভাবা যায় — খেয়াল রাখতে হবে কোনটা চাই: - outcome হিসেবে জোড়া (সঠিক, সমসম্ভাব্য): \(\Omega = \{(i,j): 1\le i,j\le 6\}\), \(\lvert\Omega\rvert = 36\)। এখানে সব \(36\)টা outcome সমসম্ভাব্য। - outcome হিসেবে শুধু যোগফল: \(\Omega' = \{2,3,4,\dots,12\}\), \(\lvert\Omega'\rvert = 11\)। সাবধান — এই \(11\)টা outcome সমসম্ভাব্য নয় (যোগফল \(7\) ছয় ভাবে, \(2\) মাত্র এক ভাবে আসে)। তাই classical সূত্র এখানে সরাসরি খাটবে না; probability হিসাবের জন্য জোড়ার \(\Omega\) (\(36\)) ব্যবহার করাই নিরাপদ।
(গ) প্রথম head না আসা পর্যন্ত toss।
এটা অসীম কিন্তু গণনাযোগ্য (প্রতিটি outcome-কে \(1,2,3,\dots\) দিয়ে সূচিত করা যায়)। পরে geometric distribution-এর sample space এটাই (2.3)।
Q2 (★) — Event-কে set operation-এ অনুবাদ¶
\(\Omega=\{1,\dots,6\}\), \(A=\{2,4,6\}\), \(B=\{1,2,3\}\)।
- (ক) "\(A\) এবং \(B\)" \(= A \cap B = \{2\}\)।
- (খ) "\(A\) অথবা \(B\)" \(= A \cup B = \{1,2,3,4,6\}\)।
- (গ) "\(A\) কিন্তু \(B\) নয়" \(= A \setminus B = A \cap B^c = \{4,6\}\)।
- (ঘ) "\(A\)-ও না, \(B\)-ও না" \(= (A\cup B)^c = \{1,2,3,4,6\}^c = \{5\}\)।
De Morgan verify: \((A\cup B)^c = A^c \cap B^c\)। এখানে \(A^c=\{1,3,5\}\), \(B^c=\{4,5,6\}\), তাই \(A^c\cap B^c = \{5\}\) — উপরের সাথে মিলল ✓। (0.1-এর De Morgan সরাসরি কাজে লাগল।)
Q3 (★★) — Classical সূত্র vs axiom (loaded die)¶
কেন classical সূত্র loaded পাশায় খাটে না: সূত্র \(P(A)=\lvert A\rvert/\lvert\Omega\rvert\)-এর পেছনে একটা অনুমান আছে — সব outcome সমসম্ভাব্য, অর্থাৎ প্রত্যেকের probability \(1/N\) (§২.৪-এর derivation এই সমতার ওপর দাঁড়ানো)। loaded পাশায় এই সমতা ভাঙে — কোনো মুখ বেশি, কোনোটা কম আসে — তাই "favorable/total" ভুল উত্তর দেয়। শুধু outcome গুনে আর কাজ চলে না; এখন প্রতিটি outcome-এর আসল mass জানা চাই।
অথচ axiom তখনও মানে: Kolmogorov-এর তিন axiom কোথাও "সব outcome সমান" দাবি করে না। তারা শুধু বলে mass অঋণাত্মক (Ax.1), মোট mass \(1\) (Ax.2), disjoint হলে mass যোগ হয় (Ax.3)। অসম mass-ও এই তিন শর্ত দিব্যি মানতে পারে।
উদাহরণ (\(P(\{6\})=0.5\)): ধরা যাক
প্রতিটি \(\ge 0\) (Ax.1 ✓), যোগফল \(0.5+5(0.1)=1\) (Ax.2 ✓), আর যেকোনো event-এর probability সদস্যদের mass-এর যোগফল (Ax.3 ✓)। কিন্তু এখানে \(P(\{6\})=0.5 \ne 1/6\) — classical সূত্র ভুল হতো। (এই পাশাই §২.৩ ও §৬-এর mass-চিত্রের কাছাকাছি ধারণা।)
৭.২ Computational¶
Q4 (★) — দুই পাশা, \(\lvert\Omega\rvert = 36\)¶
(ক) যোগফল \(\le 4\): favorable \(=\{(1,1),(1,2),(2,1),(1,3),(3,1),(2,2)\}\), সংখ্যা \(6\)।
(খ) Doubles (দুটো একই): \(\{(1,1),(2,2),\dots,(6,6)\}\), সংখ্যা \(6\)।
(গ) যোগফল জোড়: যোগফল জোড় হয় যখন দুই পাশা একই parity-র (দুটোই জোড় বা দুটোই বিজোড়)। প্রতিটি পাশায় \(3\)টি জোড়, \(3\)টি বিজোড় → favorable \(=3\times3 + 3\times3 = 18\)।
(verify: যোগফল জোড় বা বিজোড় — দুটো সমসম্ভাব্য, তাই \(0.5\) স্বজ্ঞাসঙ্গত।)
Q5 (★★) — Poker hand¶
(ক) মোট hand: \(52\) থেকে \(5\), ক্রম গোনা হয় না →
(খ) ও (গ) ঠিক চারটা ace: চারটা ace অবশ্যই থাকবে (\(\binom{4}{4}=1\) ভাবে), আর পঞ্চম তাস বাকি \(48\)টা থেকে যেকোনো একটা (\(\binom{48}{1}=48\) ভাবে):
(প্রশ্নের (খ) ও (গ) একই event — "ঠিক চারটা ace-সহ hand" — তাই উত্তরও একই; এটাই \(\approx 0.0000185\)।)
Q6 (★★) — Birthday problem, \(n=25\)¶
"অন্তত দুজনের একই জন্মদিন" সরাসরি গোনা কঠিন (অনেক কেস); complement rule-এ উল্টোটা — "সবার আলাদা জন্মদিন" — গোনা সহজ।
\(25\) জনের জন্মদিন আলাদা হওয়ার উপায়: প্রথম জনের \(365\) option, দ্বিতীয় জনের \(364\) (আগেরটা বাদ), …, \(25\)-তম জনের \(365-24=341\)। মোট সমসম্ভাব্য বিন্যাস \(365^{25}\)। তাই
সংখ্যায় (Python: from math import prod; prod(365-i for i in range(25))/365**25):
তাই complement rule দিয়ে
💡 এটাই বিখ্যাত birthday paradox: মাত্র \(25\) জনেই ৫৭% probability! আসলে \(n=23\)-তেই probability \(0.5\) ছাড়িয়ে যায় — অধিকাংশ মানুষের স্বজ্ঞার চেয়ে অনেক ছোট সংখ্যা। কারণ "জোড়া"-র সংখ্যা \(\binom{25}{2}=300\) — অনেক, তাই কোনো-না-কোনো জোড়া মেলার সুযোগ বেশি।
from math import prod
n = 25
p_all_diff = prod(365 - i for i in range(n)) / 365**n
print(round(1 - p_all_diff, 4)) # 0.5687
৭.৩ Proof-based¶
Q7 (★★) — Bonferroni inequality: \(P(A\cap B) \ge P(A)+P(B)-1\)¶
§৪.৩-এর addition rule দিয়ে শুরু করি:
\(P(A\cap B)\)-এর জন্য পুনর্বিন্যাস:
এখন \(A\cup B\) একটা event, তাই §৪.১-এর ফল অনুযায়ী \(P(A\cup B) \le 1\)। ডানদিকে \(-P(A\cup B) \ge -1\) বসালে:
অর্থ: দুই event-এর probability বড় হলে তাদের একসাথে ঘটার probability শূন্য হতে পারে না — অন্তত \(P(A)+P(B)-1\)। যেমন \(P(A)=P(B)=0.9\) হলে \(P(A\cap B)\ge 0.8\)।
Q8 (★★★) — Union bound (induction)¶
দাবি: যেকোনো \(n\ge 1\) event-এর জন্য \(\displaystyle P\!\left(\bigcup_{i=1}^n A_i\right) \le \sum_{i=1}^n P(A_i)\)।
Base case (\(n=1\)): \(P(A_1) \le P(A_1)\) — তুচ্ছভাবে সত্য (সমান)।
Inductive hypothesis: ধরো কোনো \(n\)-এর জন্য \(P\!\left(\bigcup_{i=1}^n A_i\right) \le \sum_{i=1}^n P(A_i)\)।
Inductive step (\(n \to n+1\)): \(B = \bigcup_{i=1}^n A_i\) ধরি। তাহলে \(\bigcup_{i=1}^{n+1} A_i = B \cup A_{n+1}\)। দুই-event addition rule (§৪.৩):
(এখানে \(-P(B\cap A_{n+1}) \le 0\) ফেলে দিয়ে inequality পেলাম।) এবার inductive hypothesis \(P(B) \le \sum_{i=1}^n P(A_i)\) বসালে:
Induction-এর নীতি অনুসারে দাবিটি সব \(n\ge 1\)-এর জন্য সত্য। \(\;\blacksquare\)
(লক্ষ করো 0.1-এর induction কৌশল এখানে সরাসরি কাজে লাগল।)
৭.৪ Coding¶
Q9 (★★) — Simulation-এ convergence¶
import numpy as np
def estimate_prob(event_fn, n, seed=7):
"""দুই পাশা n বার simulate করে event_fn-এর relative frequency।"""
rng = np.random.default_rng(seed)
d1 = rng.integers(1, 7, size=n)
d2 = rng.integers(1, 7, size=n)
return float(np.mean(event_fn(d1, d2))) # n_A / n
sum_is_7 = lambda d1, d2: (d1 + d2) == 7
for n in (1_000, 10_000, 100_000):
print(f"n = {n:>7}: estimate = {estimate_prob(sum_is_7, n):.4f} (true 1/6 = 0.1667)")
আউটপুট (seed=7):
n = 1000: estimate = 0.1570 (true 1/6 = 0.1667)
n = 10000: estimate = 0.1634 (true 1/6 = 0.1667)
n = 100000: estimate = 0.1660 (true 1/6 = 0.1667)
\(n\) যত বড়, estimate তত \(1/6 \approx 0.1667\)-এর কাছে (\(0.1570 \to 0.1634 \to 0.1660\))। ভুল মোটামুটি \(1/\sqrt{n}\) হারে কমছে — frequentist interpretation ও Law of Large Numbers-এর সংখ্যাগত প্রমাণ।
Q10 (★★★) — তিন-event inclusion–exclusion verify¶
from itertools import product
omega = list(product(range(1, 7), repeat=2)) # |Omega| = 36
def P(event_fn):
return sum(1 for o in omega if event_fn(o)) / len(omega)
A = lambda o: o[0] == 6 # প্রথমে 6
B = lambda o: o[0] + o[1] >= 10 # যোগফল >= 10
C = lambda o: o[1] % 2 == 0 # দ্বিতীয়টা জোড়
lhs = P(lambda o: A(o) or B(o) or C(o))
rhs = (P(A) + P(B) + P(C)
- P(lambda o: A(o) and B(o))
- P(lambda o: A(o) and C(o))
- P(lambda o: B(o) and C(o))
+ P(lambda o: A(o) and B(o) and C(o)))
print(f"LHS P(A u B u C) = {lhs:.6f}")
print(f"RHS inclusion-excl = {rhs:.6f}")
print("equal:", abs(lhs - rhs) < 1e-12)
আউটপুট:
দুপাশ মিলল (\(22/36 = 0.6111\))। আলাদা আলাদা পদগুলো:
যোগ করে: \(\dfrac{6+6+18-3-3-4+2}{36} = \dfrac{22}{36} \approx 0.6111\) ✓ — §৪.৪-এর সাত-পদ সূত্র computation-এ প্রতিষ্ঠিত।