পাঠ ১২ · ৪৪-এর মধ্যে · মডিউল ৩
Home / Courses / Discrete Mathematics / বেসিক কাউন্টিং

বেসিক কাউন্টিং — যোগ ও গুণের নিয়ম

Basic counting — sum & product rules
৭ মিনিট পড়া মধ্যম · Intermediate Python কোডসহ সম্পূর্ণ বাংলায়

এই পাঠে যা শিখবেন

  • যোগের নিয়ম ও গুণের নিয়ম — কখন কোনটি প্রয়োগ করতে হয়
  • একটি মাল্টি-স্টেপ কাউন্টিং সমস্যা কীভাবে ধাপে ভাগ করে সমাধান করতে হয়
  • Python দিয়ে গণনা যাচাই করা — itertools.product ব্যবহার করে
  • কীভাবে এই মডিউলের (M3) বাকি পাঠগুলো (পারমুটেশন, কম্বিনেশন) এই দুটো নিয়মেরই সম্প্রসারণ

১ · যোগের নিয়ম (Sum Rule)

ধরুন একটি কাজ দুইভাবে করা যায় — কিন্তু দুইভাবে একসাথে নয়, শুধু একটি বেছে নিতে হবে। একে বলা হয় Sum RuleSum Rule (যোগের নিয়ম)যদি একটি কাজ পরস্পর-বিচ্ছিন্ন (mutually exclusive) $m$টি উপায়ে অথবা $n$টি উপায়ে করা যায় (একসাথে দুটো নয়), তাহলে মোট উপায়ের সংখ্যা $m+n$।। যেমন — আপনার কাছে ৩টি বাংলা বই এবং ৫টি ইংরেজি বই আছে, এবং আপনি একটি বই পড়তে চান (বাংলা অথবা ইংরেজি, দুটো একসাথে নয়)। মোট উপায় $3+5=8$।

চেনার উপায়

যখনই সমস্যায় "অথবা" (OR) শব্দটি প্রাসঙ্গিক হয় এবং বিকল্পগুলো একে অপরের সাথে ওভারল্যাপ করে না, তখন যোগের নিয়ম প্রযোজ্য।

২ · গুণের নিয়ম (Product Rule)

এবার ধরুন একটি কাজ একাধিক স্বাধীন ধাপে ভাগ করা যায় — প্রতিটি ধাপ আলাদাভাবে সম্পন্ন হয়, এবং একটি ধাপের বাছাই অন্য ধাপের বিকল্প সংখ্যা পরিবর্তন করে না। একে বলা হয় Product RuleProduct Rule (গুণের নিয়ম)যদি একটি কাজের স্বাধীন ধাপ থাকে, যেখানে প্রথম ধাপে $m$টি এবং দ্বিতীয় ধাপে $n$টি উপায় আছে, তাহলে মোট উপায় $m \times n$। তিন বা ততোধিক ধাপেও একইভাবে সব সংখ্যা গুণ করা হয়।।

উদাহরণ: একটি রেস্তোরাঁর মেনুতে ৩টি স্টার্টার, ৪টি মেইন কোর্স এবং ২টি ডেজার্ট আছে। একটি পূর্ণ মিল (স্টার্টার + মেইন + ডেজার্ট) কতভাবে বাছাই করা যায়?

সমাধান

মিল তৈরির ৩টি স্বাধীন ধাপ আছে — স্টার্টার বাছাই ($3$ উপায়), মেইন বাছাই ($4$ উপায়), ডেজার্ট বাছাই ($2$ উপায়)। গুণের নিয়ম অনুযায়ী মোট $3 \times 4 \times 2 = 24$টি সম্ভাব্য মিল কম্বিনেশন আছে।

Python
import itertools

starters = ["Salad", "Soup", "Spring Roll"]
mains = ["Rice", "Pasta", "Pizza", "Curry"]
desserts = ["Ice Cream", "Cake"]

combos = list(itertools.product(starters, mains, desserts))
print("মোট সম্ভাব্য মেনু কম্বিনেশন:", len(combos))
print("প্রথম ৩টি উদাহরণ:", combos[:3])

    
itertools.product ঠিক গুণের নিয়মেরই কম্পিউটেশনাল বাস্তবায়ন — এটি প্রতিটি সম্ভাব্য কম্বিনেশন তৈরি করে, এবং তাদের সংখ্যা সবসময় ইনপুট তালিকাগুলোর দৈর্ঘ্যের গুণফলের সমান হবে ($3 \times 4 \times 2 = 24$)।

৩ · দুটো নিয়ম একসাথে ব্যবহার করা

বাস্তব সমস্যায় প্রায়ই যোগ ও গুণ দুটো নিয়মই লাগে। ধরুন একটি পাসওয়ার্ড হয় ৩ ডিজিটের সংখ্যা (০-৯ প্রতিটি স্থানে, তাই $10^3=1000$ উপায়) অথবা ২ অক্ষরের কোড (A-Z প্রতিটি স্থানে, তাই $26^2=676$ উপায়) — এই দুই প্রকারের কোনো একটি। মোট বৈধ পাসওয়ার্ড সংখ্যা $1000+676=1676$ — এখানে ভেতরে গুণের নিয়ম, বাইরে যোগের নিয়ম প্রয়োগ হয়েছে।

যোগ — কখন?
বিকল্পগুলো পরস্পর-বিচ্ছিন্ন এবং শুধু একটি বেছে নিতে হয় ("অথবা")।
গুণ — কখন?
একাধিক স্বাধীন ধাপ পরপর সম্পন্ন করতে হয় ("এবং")।
মূল কথা · Key takeaway

যোগ ও গুণের নিয়ম দেখতে সহজ মনে হলেও, এগুলোই M3-এর প্রতিটি পরবর্তী পাঠের (পারমুটেশন, কম্বিনেশন, পিজনহোল, ইনক্লুশন-এক্সক্লুশন) গাণিতিক ভিত্তি। প্রতিটি জটিল কাউন্টিং সূত্র শেষ পর্যন্ত এই দুটো সহজ নিয়মেরই সম্প্রসারণ।

ভাবনার প্রশ্ন

প্রতিটি প্রশ্ন নিজে কিছুক্ষণ ভাবুন — তারপর "→ উত্তর" চাপুন।

প্র ০১ একটি লাইব্রেরিতে ৫টি গণিতের বই এবং ৭টি বিজ্ঞানের বই আছে। আপনি একটি গণিতের বই এবং একটি বিজ্ঞানের বই ধার নিতে চান — এটি কি যোগ নাকি গুণের নিয়ম, এবং কেন?

মূল উত্তর — গুণের নিয়ম। এখানে দুটো স্বাধীন ধাপ আছে: গণিতের বই বাছাই (৫ উপায়) এবং বিজ্ঞানের বই বাছাই (৭ উপায়)। একটি বই বাছাই অন্যটির বিকল্প সংখ্যা পরিবর্তন করে না — তাই এটি "এবং" সম্পর্ক, গুণের নিয়ম প্রযোজ্য। মোট উপায় $5 \times 7 = 35$।

যদি প্রশ্নটি হতো "একটি বই ধার নিতে চান — গণিত অথবা বিজ্ঞান থেকে যেকোনো একটি", তখন এটি যোগের নিয়ম হতো: $5+7=12$টি উপায়। শব্দ "এবং" বনাম "অথবা" আলাদা করাই এই দুই নিয়ম চেনার মূল কৌশল।

প্র ০২ একটি লাইসেন্স প্লেট ৩টি অক্ষর (A-Z) এবং তারপর ৪টি সংখ্যা (০-৯) দিয়ে গঠিত, প্রতিটি স্থানে পুনরাবৃত্তি সম্ভব। মোট কতগুলো ভিন্ন লাইসেন্স প্লেট তৈরি করা যায়?

এখানে ৭টি স্বাধীন স্থান আছে — ৩টি অক্ষরের স্থান, প্রতিটিতে ২৬টি সম্ভাব্য অক্ষর, এবং ৪টি সংখ্যার স্থান, প্রতিটিতে ১০টি সম্ভাব্য সংখ্যা। গুণের নিয়ম প্রয়োগ করে: $26 \times 26 \times 26 \times 10 \times 10 \times 10 \times 10 = 26^3 \times 10^4$।

$26^3 = 17576$ এবং $10^4=10000$, তাই মোট $17576 \times 10000 = 175{,}760{,}000$টি ভিন্ন প্লেট সম্ভব — প্রায় ১৭.৬ কোটি।

প্র ০৩ কেন গুণের নিয়ম প্রয়োগ করার জন্য ধাপগুলো "স্বাধীন" হওয়া জরুরি — একটি উদাহরণ দিন যেখানে ধাপগুলো স্বাধীন নয়, এবং সরল গুণ ভুল উত্তর দেবে।

ধরুন ৩ জনের একটি দল থেকে ২ জনকে বাছাই করে একটি লাইনে দাঁড় করাতে হবে (প্রথমজন ও দ্বিতীয়জন, ক্রম গুরুত্বপূর্ণ), কিন্তু একই ব্যক্তি দুইবার বাছাই করা যাবে না। প্রথম স্থানের জন্য ৩ উপায়, কিন্তু দ্বিতীয় স্থানের জন্য এখন মাত্র ২ উপায় বাকি (একজন ইতিমধ্যে বাছাই হয়ে গেছে) — দ্বিতীয় ধাপের বিকল্প সংখ্যা প্রথম ধাপের ফলাফলের উপর নির্ভরশীল, তাই এটি সম্পূর্ণ "স্বাধীন" নয়।

এখানে সরল $3 \times 3=9$ ভুল হবে (এতে একই ব্যক্তি দুইবার গণনা হয়ে যাবে) — সঠিক উত্তর $3 \times 2=6$। এই ধরনের "নির্ভরশীল ধাপ" কাউন্টিংই পরের পাঠে (L13) পারমুটেশন হিসেবে আনুষ্ঠানিকভাবে সংজ্ঞায়িত করা হবে।

অনুশীলন

  1. গণনা করুন: একটি আইসক্রিম শপে ৫ ধরনের ফ্লেভার এবং ৩ ধরনের টপিং আছে। একটি স্কুপ (১টি ফ্লেভার + ১টি টপিং) কতভাবে বাছাই করা যায়? তারপর ধরুন আপনি টপিং ছাড়াই নিতে পারেন — এখন মোট কতভাবে বাছাই করা যায়?

    প্রথম অংশ — গুণের নিয়ম: $5 \times 3 = 15$টি কম্বিনেশন। দ্বিতীয় অংশে "টপিং ছাড়া"ও একটি অতিরিক্ত বিকল্প হিসেবে যোগ করতে হবে ($3+1=4$টি টপিং-অপশন, "কিছু না" সহ), তাই মোট $5 \times 4=20$টি কম্বিনেশন।

  2. যাচাই করুন: উপরের কোড সেলে starters, mains, desserts তালিকায় নিজের মতো আইটেম যোগ/বাদ দিয়ে নতুন দৈর্ঘ্য দিয়ে হাতে-হিসাব করুন, তারপর Run চেপে মিলিয়ে দেখুন।

    যদি নতুন তালিকার দৈর্ঘ্য হয় যথাক্রমে $a$, $b$, $c$, তাহলে len(combos) সবসময় $a \times b \times c$-এর সমান হওয়া উচিত। যদি না মেলে, নিশ্চিত করুন তালিকায় কোনো ডুপ্লিকেট আইটেম নেই — itertools.product আইটেমগুলোকে ইউনিক ধরে নেয় না, শুধু তালিকার দৈর্ঘ্য গোনে।

আরও পড়ুন · ABCL TECH-এ আপনার পরবর্তী পদক্ষেপ

আগের পাঠ
ফাংশন — ইনজেকটিভ, সারজেক্টিভ, বাইজেকটিভ ও কার্ডিনালিটি