কম্পিউটার টিউটোরিয়াল

C++ ব্যবহার করে পেল (Pell) সংখ্যা নির্ণয় করুন


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

প্রথম দুটি শুরুয়ের সংখ্যা: P0 = 0 এবং P1 = 1

সমাধানের পদ্ধতি

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

রিকারসিভ পদ্ধতি

এই সূত্রে, আমরা পেল সংখ্যার সূত্রটি রিকারসিভলি প্রয়োগ করব এবং 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; // দেওয়া n cout << pell(n) <<"\n"; // সেই পজিশনের পেল সংখ্যা। return 0; }

আউটপুট

70

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

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

ইটারেটিভ পদ্ধতি

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

উদাহরণ

#include <iostream> using namespace std; int main() {    int n = 6; // দেওয়া n।    int p0 = 0; // pn-2-এর প্রাথমিক মান।    int p1 = 1; // pn-1-এর প্রাথমিক মান।    int pn; // আমাদের উত্তর।    if(n <= 2) // যদি n <= 2 হয় তবে n প্রিন্ট করুন।       cout << n <<"\n";    else {       for(int i = 2; i <= n; i++) { // ২য় সংখ্যা থেকে n পর্যন্ত বের করব।          pn = 2*p1 + p0;          p0 = p1; // নতুন i-এর জন্য pn-1 হয়ে যায় pn-2।          p1 = pn; // নতুন i-এর জন্য pn হয়ে যায় pn-1।       }       cout << pn << "\n";    }    return 0; }

আউটপুট

70

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

দেওয়া প্রোগ্রামে, আমরা ২ থেকে n পর্যন্ত ট্রাভার্স করি এবং pn-2 কে pn-1 এবং pn-1 কে pn আপডেট করি যতক্ষণ n-এ পৌঁছাই।

উপসংহার

এই আর্টিকেলে, আমরা রিকারসন এবং ইটারেশন ব্যবহার করে N-তম পেল সংখ্যা বের করার সমস্যা সমাধান করেছি। আমরা এই সমস্যার জন্য C++ প্রোগ্রাম এবং সম্পূর্ণ পদ্ধতি (সাধারণ ও দক্ষ) শিখেছি। একই প্রোগ্রামটি C, Java, Python এবং অন্যান্য ভাষায়ও লিখা যায়।


  1. C++ ব্যবহার করে পেন্টাগোনাল পিরামিডাল সংখ্যা নির্ণয় করুন

  2. C++ দিয়ে একটি স্ট্রিংয়ের সাবস্ট্রিং-এর সংখ্যা বের করা

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

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