ললকোডে রিকারশন (Recursion) একটি প্রক্রিয়া, যেখানে একটি ফাংশন নিজের প্রতি কল করে। এটি সাধারণত কোনো সমস্যা ছোট ছোট সাব-প্রবাহে ভাগ করে সমাধান করার জন্য ব্যবহৃত হয়, যেমন ফ্যাক্টোরিয়াল বা ফিবোনাচ্চি সিরিজের মতো গণনা।
ললকোডে রিকারশন ব্যবহার করা হলে, আপনাকে বিশেষভাবে ফাংশন ব্যবহার করতে হবে, কারণ ফাংশনগুলো কোডের পুনরাবৃত্তি হতে পারে এবং পুনরায় নিজের প্রতি কল করতে সক্ষম।
রিকারশন ব্যবহার করার জন্য ফাংশন
ললকোডে ফাংশন ব্যবহার করতে HOW IZ I দিয়ে ফাংশন তৈরি করা হয়, এবং IF U SAY SO দিয়ে শেষ করা হয়।
ফ্যাক্টোরিয়াল হিসাব করার উদাহরণ:
ফ্যাক্টোরিয়াল হিসাব করতে একটি রিকার্সিভ ফাংশন ব্যবহার করা যেতে পারে। ফ্যাক্টোরিয়াল হলো একটি সংখ্যার গুণফল যেটি তার সব ছোট সংখ্যা (যেমন: 5! = 5 × 4 × 3 × 2 × 1) দিয়ে বের করা হয়।
উদাহরণ:
HOW IZ I FACTORIAL YR num
O RLY?
BOTH SAEM num AN 1, YA RLY
FOUND YR 1
OIC
FOUND YR num R PRODUKT OF num AN FACTORIAL YR DIFF OF num AN 1
IF U SAY SO
I HAS A num ITZ 5
I HAS A result ITZ FACTORIAL YR num
VISIBLE result // আউটপুট হবে 120ব্যাখ্যা:
HOW IZ I FACTORIAL YR numফাংশনটিnumএর ফ্যাক্টোরিয়াল বের করতে কল করা হয়।- যদি
num1 হয়, তখন এটি1রিটার্ন করে (বেস কেস)। - অন্যথায়, এটি
num * FACTORIAL(num-1)রিকার্সিভভাবে কল করে ফ্যাক্টোরিয়াল হিসাব করে। VISIBLE resultকনসোলে আউটপুট করবে 120 (যেহেতু 5! = 5 × 4 × 3 × 2 × 1 = 120)।
ফিবোনাচ্চি সিরিজ হিসাব করার উদাহরণ:
ফিবোনাচ্চি সিরিজের প্রতিটি মান হলো পূর্ববর্তী দুটি মানের যোগফল (যেমন: 0, 1, 1, 2, 3, 5, 8, 13, ...)। এটি একটি আরেকটি জনপ্রিয় উদাহরণ যেখানে রিকারশন ব্যবহৃত হয়।
উদাহরণ:
HOW IZ I FIBONACCI YR num
O RLY?
BOTH SAEM num AN 0, YA RLY
FOUND YR 0
OIC
BOTH SAEM num AN 1, YA RLY
FOUND YR 1
OIC
FOUND YR SUM OF FIBONACCI YR DIFF OF num AN 1 AN FIBONACCI YR DIFF OF num AN 2
IF U SAY SO
I HAS A num ITZ 6
I HAS A result ITZ FIBONACCI YR num
VISIBLE result // আউটপুট হবে 8ব্যাখ্যা:
HOW IZ I FIBONACCI YR numফাংশনটিnumএর ফিবোনাচ্চি মান বের করার জন্য কল করা হয়।- যদি
num0 বা 1 হয়, তখন তা নিজেই রিটার্ন করা হয় (বেস কেস)। - অন্যথায়, এটি
FIBONACCI(num-1) + FIBONACCI(num-2)রিকার্সিভভাবে কল করে ফিবোনাচ্চি মান বের করে। VISIBLE resultকনসোলে আউটপুট করবে 8 (যেহেতু ফিবোনাচ্চি সিরিজে 6 তম মান হলো 8)।
রিকারশন ব্যবহার করার সময় কিছু গুরুত্বপূর্ণ বিষয়
- বেস কেস (Base Case): রিকারশন ব্যবহার করার সময় একটি বেস কেস থাকা অত্যন্ত গুরুত্বপূর্ণ, যাতে রিকারশন কখন থেমে যাবে তা নির্ধারণ করা যায়। যদি বেস কেস না থাকে, তাহলে এটি অসীম রিকারশন ঘটাতে পারে (যা প্রোগ্রাম ক্র্যাশের কারণ হতে পারে)।
- সাবপ্রবাহের সমস্যা: কিছু সমস্যায় রিকারশন অপেক্ষাকৃত ধীর গতিতে কাজ করতে পারে। এমন ক্ষেত্রে পুনরাবৃত্তি ব্যবহারের পরিবর্তে লুপ ব্যবহার করা ভালো হতে পারে।
সারসংক্ষেপ
- রিকারশন হলো এমন একটি প্রক্রিয়া যেখানে একটি ফাংশন নিজে নিজের প্রতি কল করে, সাধারণত ছোট ছোট উপ-কাজের সমাধান করতে।
- ললকোডে ফাংশন ব্যবহার করে রিকারশন বাস্তবায়িত হয়।
- ফ্যাক্টোরিয়াল এবং ফিবোনাচ্চি সিরিজ রিকারশনের জনপ্রিয় উদাহরণ।
- বেস কেস এবং সাবপ্রবাহের সমস্যা রিকারশন ব্যবহারের সময় গুরুত্বপূর্ণ বিষয়।
এইভাবে, ললকোডে রিকারশন ব্যবহার করে সমস্যাগুলোর সমাধান করার জন্য কোডকে আরও সঠিক এবং কার্যকরী করা যায়।
Read more