Visualization Ideas — Counting & Combinatorics¶
Combinatorics-এ ছবি আঁকা optional না — এটাই পদ্ধতি। গাছ, star-bar সারি, grid — formula আসে ছবির পরে। এই file-এর প্রতিটা idea খাতায় অন্তত একবার নিজের হাতে আঁকো।
প্রতি concept-এর visualization idea¶
1. Multiplication principle = শাখা-প্রশাখার গাছ¶
জামা-প্যান্ট-জুতার choice tree আঁকো: root থেকে 3 শাখা (জামা), প্রতিটা থেকে 4 (প্যান্ট), প্রতিটা থেকে 2 (জুতা)। পাতা গুনলেই উত্তর — 24। Animation idea: গাছটা level by level ফুটছে, প্রতি level-এ পাতার সংখ্যা ×(সেই ধাপের choice) হয়ে লাফাচ্ছে।
2. Factorial = চেয়ার ভরাট¶
n টা খালি চেয়ার আঁকো। প্রথম চেয়ারের উপর লেখো "n জন বসতে পারে", দ্বিতীয়টায় "n−1", ... শেষেরটায় "1"। চেয়ারগুলোর উপরের সংখ্যা গুণ করলেই n! — multiplication principle-এর সরাসরি ছবি।
3. P vs C = চশমা বদল¶
একই 60টা সাজানো সারি (P(5,3)) লেখো ছোট করে; তারপর "order-অন্ধ" চশমা পরো — যে সারিগুলোয় একই 3 জন, তাদের এক রঙে ঘিরে দাও। প্রতি ঘেরে ঠিক 6টা (3!) সারি, ঘের মোট 10টা — C(5,3)। "ভাগ করা মানে duplicate-দের দল বেঁধে এক করে গোনা" — এই ছবিটাই।
4. Pascal triangle = বল গড়ানোর pinball¶
Triangle-টা pinball board ভাবো: উপর থেকে বল পড়ে, প্রতি কাঁটায় বামে/ডানে। C(n, r) = উপর থেকে (n, r) ঘরে পৌঁছানোর path-সংখ্যা — প্রতিটা ঘরে আসা যায় শুধু মাথার উপরের দুই ঘর থেকে, তাই দুটোর যোগ। Grid path (idea 7)-এর সাথে একই গল্প — আগেই টের পাবে।
5. Stars and bars = চকলেটের সারিতে লাঠি¶
n টা ★ এক সারিতে আঁকো; k−1 টা লাঠি (|) ফাঁকে ফাঁকে বসাও — প্রতিটা বসানো = এক একটা ভাগ। লাঠি পাশাপাশি বসলে মাঝের জন 0 পায়, লাঠি প্রান্তে বসলে প্রান্তের জন 0 পায় — "0 allowed" কেন আপনিই চলে আসে, ছবিই বলে দেয়।
6. Inclusion-exclusion = রঙ চাপানোর হিসাব¶
দুটো (পরে তিনটা) overlapping বৃত্ত আঁকো; |A| গুনতে A-তে এক পোঁচ হলুদ, |B| গুনতে B-তে এক পোঁচ নীল — মাঝের অংশে দুই পোঁচ রঙ জমেছে! এক পোঁচ তুলে নাও (বিয়োগ)। 3 বৃত্তে একদম-মাঝে তিন পোঁচ চাপে, তিন পোঁচ ওঠে — শূন্য! এক পোঁচ ফেরত দাও (যোগ)। "প্রতিটা অঞ্চলে ঠিক এক পোঁচ" — এটাই লক্ষ্য।
7. Grid path = R/D-র মালা গাঁথা¶
ছোট grid আঁকো, 2-3টা path তীর দিয়ে দেখাও, প্রতিটার পাশে তার R/D string লেখো। তারপর উল্টোটা: একটা string দাও, path আঁকতে বলো — এক-এক সম্পর্ক চোখে পড়লেই C(m+n, n) আর রহস্য না।
8. Derangement = টুপি বদলের তীরচিত্র¶
n জন মানুষ উপরে, n টুপি নিচে; কে কার টুপি পেল — তীর আঁকো। নিয়ম একটাই: কোনো তীর সোজা নিচে নামতে পারবে না (নিজের টুপি নিষেধ)। n = 3-এ বৈধ তীরচিত্র মোটে 2টা — হাতে এঁকে দেখো।
9. Pigeonhole = খোপে পায়রা ঠাসা¶
n খোপ আঁকো, n+1 পায়রা এক এক করে ঢোকাও — যত কৌশলই করো, এক খোপে দুজন হবেই। পাশে remainder-রূপ: mod n-এর n টা খোপ (ঘড়ির ঘর!), n+1 টা সংখ্যা ফেললে কোনো ঘরে দুটো — তাদের পার্থক্য n-এ ভাগ যায়।
Worked ASCII example 1: stars and bars (5 চকলেট, 3 বন্ধু)¶
formula: C(5 + 3 − 1, 3 − 1) = C(7, 2) = 21
কয়েকটা ভাগ (★ = চকলেট, | = ভাগের লাঠি):
★ ★ | ★ ★ | ★ -> (2, 2, 1)
★ ★ ★ ★ ★ | | -> (5, 0, 0) লাঠি দুটো শেষে -> পরের দুজন 0
| | ★ ★ ★ ★ ★ -> (0, 0, 5)
★ | ★ ★ ★ | ★ -> (1, 3, 1)
মোট 7টা জায়গা (5 star + 2 bar); bar-এর 2টা জায়গা বাছো -> C(7,2) = 21
ছোট case দিয়ে verify: 2 চকলেট, 2 জন → C(3,1) = 3 → (0,2), (1,1), (2,0) ✓।
Worked ASCII example 2: grid path = letter সাজানো (2×2 ধাপ)¶
(0,0) ●──→──●──→──●
│ │ │ প্রতিটা path: 2টা R, 2টা D-এর সারি
↓ ↓ ↓
●──→──●──→──● path সংখ্যা = C(4, 2) = 6
│ │ │
↓ ↓ ↓
●──→──●──→──● (2,2)
6টা সাজানো: RRDD RDRD RDDR DRRD DRDR DDRR
ঘরে ঘরে path-গোনা (Pascal-এর pinball!):
1 ─ 1 ─ 1
| | |
1 ─ 2 ─ 3 প্রতিটা ঘর = (বামের ঘর) + (উপরের ঘর)
| | |
1 ─ 3 ─ 6 <- উত্তর 6, formula-র সাথে মিলল ✓
একই উত্তর দুই পথে — formula (C(4,2)) আর ঘরে-ঘরে যোগ (এটাই পরে DP)। দুটো মিললে দুটোই ঠিক বুঝেছ।
Worked ASCII example 3: derangement-এর তীরচিত্র (n = 3)¶
মানুষ: 1 2 3 নিয়ম: 1->1, 2->2, 3->3 নিষেধ
টুপি: 1 2 3
চেষ্টা সব permutation (3! = 6):
123 ✗ (তিনজনই নিজেরটা) 213 ✗ (3 নিজেরটা পেল)
132 ✗ (1 নিজেরটা পেল) 231 ✓ 1->2, 2->3, 3->1
312 ✓ 1->3, 2->1, 3->2 321 ✗ (2 নিজেরটা পেল)
D(3) = 2 recurrence check: (3−1) × (D(2)+D(1)) = 2 × (1+0) = 2 ✓
6টার মধ্যে 2টা — অনুপাত 1/3 ≈ 0.33; n বাড়লে এই অনুপাত 1/e ≈ 0.37-এ গিয়ে থামে।
নিজে practice করার নিয়ম¶
- প্রতিটা counting problem-এ প্রথমে সবচেয়ে ছোট case (n = 2 বা 3) পুরোটা হাতে এঁকে গোনো; formula-র উত্তরের সাথে মিলিয়ে তবেই বড় case-এ যাও
- Pascal triangle row 0-6 একবার হাতে বানাও; তারপর তাতে C(6,2), row-sum 2ⁿ, আর grid-path সংখ্যা — তিনটাই খুঁজে দেখো
- নিজেকে প্রশ্ন-অনুবাদের খেলা দাও: "x+y+z = 6, non-negative" → stars and bars; "committee of 4" → C; "ranking top 3" → P — প্রশ্ন দেখে ছবি চেনাই এই level-এর আসল skill
- Birthday paradox-এর probability-টা Python-এ n = 5, 10, 23, 50 এর জন্য print করে নিজের চোখে চমকটা দেখো