রিকার্সন

রিকার্সন মানে পুনরাবৃত্তি। মানে বার বার নিজেকেই কল(Call) করা। প্রোগ্রামিং এ রিকার্সন এর ব্যবহার অনেক। কোন একটি প্রবলেম সল্ভ করতে গেলে সেটিকে ভাংতে ভাংতে ছোট ছোট প্রবলেম এ ভাগ করা হয়, তখনই রিকার্সন ফাংসন ব্যবহার করা যায়। একটি রিসার্সিভ ফাংসন ব্যবহার করতে গেলে ২টি কথা মাথায় রাখতে হবে।

  • বেইজ(Base) কেস বাহির করা। মানে কেস/কনডিশন টা True হলে রিকার্সন কাজ করা বন্ধ করে দিবে/ থেমে যাবে।
  • রিকার্সিভ কেস বাহির করা। যেটার মাধ্যমে রিকার্সিভলি প্রবলেমটিকে সামনের দিকে এগিয়ে নিয়ে যাবে মানে বেইজ কেস এর দিকে যাবে।

কোন প্রবলেম – এ একের বেশি বেইজ কেস থাকতে পারে। বেইজ কেসের সলিউশনটি মূল প্রবলেমটির সলিউশন বাহির করতে ব্যবহার করতে হবে।

নিচের চিত্রটি দেখুনঃ

recursion

উদাহারনঃ একটা সংখ্যার ফ্যাক্টরিয়াল মানে হচ্ছে সেই সংখ্যা থেকে শুরু করে তার নিচের ক্রমিক সংখ্যা গুলোর প্রত্যেকটির গুণফল।

৩ এর ফ্যাক্টরিয়াল  = ৩*২*১ অথবা,

৩*(২ এর ফ্যাক্টরিয়াল )

৩*২*(১ এর ফ্যাক্টরিয়াল )

তাহলে সূত্রটি দাঁড়ায় N*ফ্যাক্টরিয়াল (N-1)

এখন বেইজ কেস নিয়ে চিন্তা করতে হবে। বেইজ কেসটা হল ১ এর ফ্যাক্টরিয়াল । তাহলে ফলাফল হবে ৩*২*১ = ৬

 

না বুঝলে Triangle মুভিটি দেখে ফেলুন!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

বিঃদ্রঃ গুছিয়ে লিখতে পারিনি। ভুল ক্ষমা করবেন।

ফেসবুক এ শেয়ার করুন

Leave a Reply

Your email address will not be published. Required fields are marked *