Skip to content

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 করে নিজের চোখে চমকটা দেখো