প্রদত্ত সমস্যায়, আমাদের একটি পূর্ণসংখ্যা দেওয়া হয়েছে 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++ প্রোগ্রাম এবং সম্পূর্ণ পদ্ধতি ( স্বাভাবিক এবং দক্ষ) শিখেছি যার মাধ্যমে আমরা এই সমস্যার সমাধান করেছি। আমরা অন্যান্য ভাষায় যেমন সি, জাভা, পাইথন এবং অন্যান্য ভাষায় একই প্রোগ্রাম লিখতে পারি।