পাইথন ফ্যাক্টোরিয়াল কীভাবে ক্যালকুলেট করবেন
আপনি আপনার হাই স্কুল ম্যাথ ক্লাস থেকে "ফ্যাক্টোরিয়াল" শব্দটি মনে করতে পারেন। ক্যালকুলেটর ছাড়া এগুলো ক্যালকুলেট করা খুব সহজ নহीं। কে ১০-এর ফ্যাক্টোরিয়াল ম্যানুয়ালি ১x২x৩x৪ গুণ করে ক্যালকুলেট করতে চাবে?
পাইথনে ফ্যাক্টোরিয়াল ক্যালকুলেট করার কয়েকটি উপায় আছে। এই গাইডে, আমরা তিনটি পদ্ধতি ব্যবহার করে ফ্যাক্টোরিয়াল কীভাবে ক্যালকুলেট করবেন সেটি আলোচনা করব: math.factorial মেথড, একটি রিকার্সিভ ফাংশন, এবং একটি ইটারেটিভ মেথড।
আর দেরি না করে, চলুন শুরু করি!
ফ্যাক্টোরিয়াল কী?
একটি ফ্যাক্টোরিয়াল হল এক থেকে অন্য একটি সংখ্যা পর্যন্ত সব পূর্ণসংখ্যার গুণফল।
গাণিতিক সূত্র হিসেবে প্রকাশ করলে, একটি ফ্যাক্টোরিয়াল হল:
n! = 1x2x3...n
এক্সক্লামেশন মার্কটি ইঙ্গিত দেয় যে আমরা একটি ফ্যাক্টোরিয়াল ক্যালকুলেট করছি। "n" হল वो সংখ্যা যার ফ্যাক্টোরিয়াল আমরা ক্যালকুলেট করছি। আমাদের ক্যালকুলেশন থামে যখন "n" এর সমান বা কম সব ইন্টিজার একসাথে গুণ হয়ে যায়।
নেগেটিভ সংখ্যায় ফ্যাক্টোরিয়াল ক্যালকুলেট করা যায় না।
পাইথন ফ্যাক্টোরিয়াল: math.factorial()
আপনি পাইথন math মডিউল ব্যবহার করে একটি ফ্যাক্টোরিয়াল ক্যালকুলেট করতে পারেন। এই লাইব্রেরি ম্যাথমেটিক্যাল ফাংশন 수행 করার জন্য ব্যবহার করা যেতে পারে এমন একটি রেঞ্জের মেথড অফার করে। উদাহরণস্বরূপ, আপনি ম্যাথ লাইব্রেরি ব্যবহার করে একটি র্যান্ডম নম্বর জেনারেট করতে পারেন।
math.factorial() মেথডটি একটি সংখ্যা এক্সেপ্ট করে এবং এর ফ্যাক্টোরিয়াল ক্যালকুলেট করে। এই মেথড ব্যবহার করার আগে, আমাদের math লাইব্রেরি আমাদের কোডে ইম্পোর্ট করতে হবে:
import math
এখন, চলুন ১৭-এর ফ্যাক্টোরিয়াল খুঁজে বের করার জন্য একটি পাইথন প্রোগ্রাম লিখি:
number = 17
fact = math.factorial(number)
print("The factorial of {} is {}.".format(number, str(fact)))
আমাদের কোড রিটার্ন করে: The factorial of 17 is 355687428096000।
factorial() মেথডটি একটি সংখ্যার ফ্যাক্টোরিয়াল রিটার্ন করে।
আমরা সেই সংখ্যাকে কনসোলে প্রিন্ট করি মেসেজের সাথে: "The factorial of 17 is "। আমরা একটি format() স্টেটমেন্ট ব্যবহার করি যাতে আমরা আমাদের সংখ্যাকে আমাদের স্ট্রিং-এর ভিতরে যোগ করতে পারি।
পাইথন ফ্যাক্টোরিয়াল: ইটারেটিভ পদ্ধতি
ফ্যাক্টোরিয়াল একটি এক্সটার্নাল পাইথন লাইব্রেরি ছাড়াইও ক্যালকুলেট করা যায়। আপনি একটি সিম্পল for স্টেটমেন্ট ব্যবহার করে ফ্যাক্টোরিয়াল ক্যালকুলেট করতে পারেন যা একটি রেঞ্জের সব সংখ্যা একসাথে গুণ করে গুণফল ক্যালকুলেট করে।
চলুন দুটি ভেরিয়েবল ডিক্লেয়ার করে শুরু করি:
number = 17 fact = 1
প্রথম ভেরিয়েবল আপনি যে সংখ্যার ফ্যাক্টোরিয়াল ক্যালকুলেট করতে চান তার সাথে কোরেসপন্ড করে। দ্বিতীয় ভেরিয়েবল ফ্যাক্টোরিয়ালের টোটাল ট্র্যাক করবে।
পরবর্তীতে, আমাদের একটি for লুপ তৈরি করতে হবে যা এক থেকে আমাদের সংখ্যা পর্যন্ত রেঞ্জের প্রতিটি সংখ্যার মাধ্যমে লুপ করবে:
for num in range(1, number+1):
fact = fact * num
print("The factorial of {} is {}.".format(number, str(fact)))
for লুপটি একটি সংখ্যার ফ্যাক্টোরিয়াল ক্যালকুলেট করে। প্রিন্ট স্টেটমেন্ট আমাদের ফর লুপে ক্যালকুলেট করা টোটাল ফ্যাক্টোরিয়াল দেখায়।
আমাদের কোড রিটার্ন করে: The factorial of 17 is 355687428096000।
এই মেথডটি কিছুটা কম দক্ষ math.factorial() মেথডের চেয়ে। এর কারণ হল math.factorial() মেথডটি C-টাইপ ইমপ্লিমেন্টেশন মেথড ব্যবহার করে ইমপ্লিমেন্ট করা হয়েছে। এটি অনেক পারফরম্যানس বেনিফিট অফার করে।
যদি আপনি এক্সটার্নাল লাইব্রেরি ছাড়া একটি সংখ্যার ফ্যাক্টোরিয়াল ক্যালকুলেট করতে চান, তবে ইটারেটিভ পদ্ধতি একটি উপযোগী মেথড।
পাইথন ফ্যাক্টোরিয়াল: রিকার্সিভ পদ্ধতি
একটি ফ্যাক্টোরিয়াল একটি রিকার্সিভ ফাংশন ব্যবহার করে ক্যালকুলেট করা যায়। একটি রিকার্সিভ ফাংশন হল এমন একটি ফাংশন যা নিজেকে কল করে একটি নির্দিষ্ট সমস্যা সমাধান করতে।
রিকার্সিভ ফাংশন প্রায়শই ম্যাথমেটিক্যাল সিকোয়েন্স ক্যালকুলেট করতে বা ম্যাথমেটিক্যাল সমস্যা সমাধান করতে ব্যবহৃত হয়। এর কারণ হল সাধারণত একটি ডিফাইনড ফর্মুলা থাকে যা একটি সমস্যার উত্তর ক্যালকুলেট করতে ব্যবহৃত হয়।
একটি পাইথন ফাইল খুলুন এবং নিচের ফাংশনটি পেস্ট করুন:
def calculate_factorial(number):
if number == 1:
return number
else:
return number * calculate_factorial(number - 1)
এই ফাংশনটি রিকার্সিভলি একটি সংখ্যার ফ্যাক্টোরিয়াল ক্যালকুলেট করে। পরবর্তীতে, আমাদের একটি মেইন প্রোগ্রাম লিখতে হবে যা এই ফাংশন ব্যবহার করে:
number = 17
fact = calculate_factorial(number)
print("The factorial of {} is {}.".format(number, str(fact)))
আমরা দুটি ভেরিয়েবল ডিক্লেয়ার করেছি: number এবং fact। Number वो সংখ্যা যার ফ্যাক্টোরিয়াল আমরা ক্যালকুলেট করতে চাই। "fact" অ্যাসাইন করা হয়েছে calculate_factorial() ফাংশনের রেজাল্ট যা আমাদের ফ্যাক্টোরিয়াল ক্যালকুলেট করে। পরবর্তীতে, আমরা কনসোলে আউটপুট প্রিন্ট করি।
আমাদের কোড রিটার্ন করে: The factorial of 17 is 355687428096000।
উপসংহার
ফ্যাক্টোরিয়াল সাধারণত গণিতে ব্যবহৃত হয়। সেগুলো এক থেকে অন্য একটি সংখ্যা পর্যন্ত সব পূর্ণসংখ্যা একসাথে গুণ করলে যে গুণফল আসে।
আপনি পাইথনে math.factorial(), একটি ইটারেটিভ মেথড, বা একটি রিকার্সিভ ফাংশন ব্যবহার করে একটি ফ্যাক্টোরিয়াল ক্যালকুলেট করতে পারেন। ইটারেটিভ এবং রিকার্সিভ পদ্ধতিগুলো তथাকথিত "ভ্যানিলা পাইথন"-এ লেখা যায়। এর মানে আপনি এই পদ্ধতিগুলোতে ফ্যাক্টোরিয়াল ক্যালকুলেট করতে কোনো লাইব্রেরি ইম্পোর্ট করতে হবে না।
এখন আপনি পাইথনে ফ্যাক্টোরিয়াল ক্যালকুলেট করার জন্য এক্সপার্টের মতো রেডি!