DEV Community

Kawsar Bin Siraj
Kawsar Bin Siraj

Posted on

রিকার্সন নিয়ে কানাঘুষা

রিকার্সন (Recursion) কি?

রিকার্শন হলো একটি প্রোগ্রামিং ধারণা যেখানে একটি ফাংশন নিজেকে নিজেকে স্থানীয় ব্যবস্থার একটি অংশ হিসেবে ডাকে। অন্যভাবে বলতে, একটি রিকার্সিভ ফাংশন হলো একটি ফাংশন যা একটি সমস্য়া সমাধান করে এমনভাবে যে, সে নিজেকে একই সমস্য়ার আবদ্ধ রূপের ছোট ইনস্ট্যান্সগুলির সাথে কল করে। প্রতিটি রিকার্সিভ কলটি মূল সমস্য়ার একটি ছোট উপসেটে কাজ করে যা একটি বেস কেসে পৌঁছানোর জন্য থামে।

Image description

রিকার্সিভ ফাংশনের মূল ঘটকগুলি হলো:

  1. বেস কেস: এটি হলো শর্ত যা নির্ধারণ করে যখন রিকার্সন থামবে। এটি সমস্যার সবচেয়ে সাধারণ ইনস্ট্যান্স যা আবদ্ধ রূপে বিনা আরও রিকার্সন সমস্যা সমাধান করা যায়।

  2. রিকার্সিভ কেস: এটি ফাংশনের অংশ যেখানে সে নিজেকে একটি পরিবর্তিত ইনপুট দিয়ে ডাকে, বেস কেসে নিকট চলে আসে। রিকার্সিভ কেসটি মূল সমস্যাটি আবদ্ধ রূপের ছোট সাবপ্রবলেমগুলির সাথে অধিকতর কাজ করে।

  3. থামানোর শর্ত: এটি রিকার্সন শেষ হওয়ার বিন্দুও হতে পারে, এটি অত্যন্ত গুরুত্বপূর্ণ যে রিকার্সন অবিরত চলে না এবং অসীম রিকার্সনে পরিণত হয় না।

রিকার্সন স্বাভাবিকভাবে সমস্যা সমাধান করতে একটি শক্তিশালী প্রয়োগ হতে পারে যা স্বাভাবিকভাবে একই সমস্যার ছোট ইনস্ট্যান্সগুলির মধ্যে বিভক্ত করা যায়। তবে, এটি বেস কেসে সামনে আসার জন্য ফাংশনটি কেমন ডিজাইন করতে হয় তা নিশ্চিত করতে হয় যাতে ফাংশনটি বেস কেসে এসে সেস্থান পেতে এবং অসীম রিকার্সনে পরিণত না হয়। রিকার্সন সাধারণভাবে বিভিন্ন অ্যালগরিদম এবং ডেটা স্ট্রাকচারে ব্যবহৃত হয়,

Image description

রিকার্সন কীভাবে মেমরিতে সংরক্ষণ করা হয়?

রিকার্সন বেশি মেমরি ব্যবহার করে, কারণ রিকার্সিভ ফাংশন প্রতিটি রিকার্সিভ কলে স্ট্যাকে আরো মান যোগ করে এবং কল শেষ হওয়া পর্যন্ত সেখানে মানগুলি রাখে। রিকার্সিভ ফাংশনটি LIFO (LAST IN FIRST OUT) স্ট্রাকচার ব্যবহার করে, যদি স্ট্যাক ডেটা স্ট্রাকচারের মতো।

Image description

Recursion হল একটি শক্তিশালী কৌশল যা কম্পিউটার বিজ্ঞান এবং প্রোগ্রামিং-এ অনেক অ্যাপ্লিকেশন রয়েছে। এখানে পুনরাবৃত্তির কিছু সাধারণ অ্যাপ্লিকেশন রয়েছে:

· ফ্যাক্টোরিয়াল গণনা: পুনরাবৃত্তির মাধ্যমে ফ্যাক্টোরিয়াল গণনা করা যেতে পারে।

· ক্রমবর্ধমান ফাংশন: পুনরাবৃত্তির মাধ্যমে ক্রমবর্ধমান ফাংশনগুলি গণনা করা যেতে পারে।

· গাণিতিক সমস্যার সমাধান: পুনরাবৃত্তির মাধ্যমে গাণিতিক সমস্যাগুলি সমাধান করা যেতে পারে।

· গ্রাফ traversals: পুনরাবৃত্তির মাধ্যমে গ্রাফ traversals করা যেতে পারে।

· ডেটা কাঠামো: পুনরাবৃত্তির মাধ্যমে ডেটা কাঠামোগুলি তৈরি এবং manipulated করা যেতে পারে।

· প্রোগ্রামিং ল্যাঙ্গুয়েজ: পুনরাবৃত্তির মাধ্যমে প্রোগ্রামিং ভাষাগুলিতে ফাংশন এবং অন্যান্য constructs defined করা যেতে পারে।

Image description

Sentry blog image

How I fixed 20 seconds of lag for every user in just 20 minutes.

Our AI agent was running 10-20 seconds slower than it should, impacting both our own developers and our early adopters. See how I used Sentry Profiling to fix it in record time.

Read more

Top comments (0)

Sentry image

See why 4M developers consider Sentry, “not bad.”

Fixing code doesn’t have to be the worst part of your day. Learn how Sentry can help.

Learn more

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay