কম্পিউটার

C++ ব্যবহার করে Pell নম্বর খুঁজুন


প্রদত্ত সমস্যায়, আমাদের একটি পূর্ণসংখ্যা দেওয়া হয়েছে n আমাদের Pn খুঁজে বের করতে হবে , অর্থাৎ, সেই অবস্থানে থাকা পেল নম্বর। এখন, আমরা জানি, পেল নম্বর এই সূত্র দ্বারা প্রদত্ত একটি সিরিজের একটি অংশ −Pn =2*Pn-1 + Pn-2

প্রথম দুটি প্রারম্ভিক সংখ্যা − P0 সহ =0 এবং P1 =1

সমাধান খোঁজার পদ্ধতি

এখন আমরা দুটি পদ্ধতির মাধ্যমে এই সমস্যার সমাধান করব:পুনরাবৃত্তিমূলক এবং পুনরাবৃত্তিমূলক।

পুনরাবৃত্ত পদ্ধতি

এই সূত্রে, আমরা পুনরাবৃত্তভাবে Pell Number এর সূত্র প্রয়োগ করব এবং n পুনরাবৃত্তি করব।

উদাহরণ

#include <iostream>

using namespace std;
int pell(int n) {
   if(n <= 2)
      return n;
   return 2*pell(n-1) + pell(n-2);
}
int main() {
   int n = 6; // given n
   cout << pell(n) <<"\n"; // Pell number at that position.
   return 0;
}

আউটপুট

70

উপরের কোডের ব্যাখ্যা

এই পদ্ধতিতে, আমরা pell(n-1) &&pell(n-2) কে কল করে পুনরাবৃত্তি ব্যবহার করি যতক্ষণ না n 2 এর থেকে কম বা সমান হয়ে যায় কারণ আমরা জানি যে 2 পর্যন্ত পেল নম্বরগুলি প্রদত্ত সংখ্যার মতোই। উপরের প্রোগ্রামের সামগ্রিক সময়ের জটিলতা হল O(N) , যেখানে N হল প্রদত্ত সংখ্যা৷

পুনরাবৃত্ত পদ্ধতি

এই পদ্ধতিতে, আমরা উপরের মত একই সূত্র ব্যবহার করব কিন্তু একটি রিকার্সিভ ফাংশনের পরিবর্তে একটি ফর লুপ ব্যবহার করে সংখ্যা গণনা করব।

উদাহরণ

#include <iostream>

using namespace std;
int main() {
   int n = 6; // given n.
   int p0 = 0; // initial value of pn-2.
   int p1 = 1; // initial value of pn-1.
   int pn; // our answer.

   if(n <= 2) // if n <= 2 we print n.
      cout << n <<"\n";
   else {
      for(int i = 2; i <= n; i++) { // we are going to find from the second number till n.

         pn = 2*p1 + p0;
         p0 = p1; // pn-1 becomes pn-2 for new i.
         p1 = pn; // pn becomes pn-1 for new i.
      }

      cout << pn << "\n";
   }
   return 0;
}

আউটপুট

70

উপরের কোডের ব্যাখ্যা

প্রদত্ত প্রোগ্রামে, আমরা 2 থেকে n পর্যন্ত অতিক্রম করছি এবং pn-2 থেকে pn-1 এবং pn-1 থেকে pn-এর মানগুলি আপডেট করছি যতক্ষণ না আমরা n এ পৌঁছাচ্ছি।

উপসংহার

এই নিবন্ধে, আমরা পুনরাবৃত্তি এবং পুনরাবৃত্তি ব্যবহার করে Nth পেল নম্বর খোঁজার সমস্যার সমাধান করেছি। আমরা এই সমস্যার জন্য C++ প্রোগ্রাম এবং সম্পূর্ণ পদ্ধতি ( স্বাভাবিক এবং দক্ষ) শিখেছি যার মাধ্যমে আমরা এই সমস্যার সমাধান করেছি। আমরা অন্যান্য ভাষায় যেমন সি, জাভা, পাইথন এবং অন্যান্য ভাষায় একই প্রোগ্রাম লিখতে পারি।


  1. C++ ব্যবহার করে পঞ্চভুজ পিরামিডাল নম্বর খুঁজুন

  2. C++ ব্যবহার করে একটি স্ট্রিং এর সাবস্ট্রিং এর সংখ্যা খুঁজুন

  3. C++ ব্যবহার করে স্টপিং স্টেশনের সংখ্যা খুঁজুন

  4. C++ ব্যবহার করে একটি সেটে রিফ্লেক্সিভ রিলেশনের সংখ্যা খুঁজুন