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

Nতম হারমাইট সংখ্যা খুঁজে বের করা C++-এ

এই সমস্যায়, আমাদের একটি পূর্ণসংখ্যা N দেওয়া আছে। আমাদের কাজ হল Nতম হারমাইট সংখ্যা বের করার প্রোগ্রাম লিখা।

হারমাইট সংখ্যা হল হারমাইট পলিনোমিয়ালের মান যখন আর্গুমেন্ট ০।

Nতম হারমাইট সংখ্যা HN = (-2) × (N - 1) × H(N-2)
বেস ভ্যালু: H₀ = 1 এবং H₁ = 0।

হারমাইট সিকোয়েন্স: 1, 0, -2, 0, 12, 0, -120, 0, 1680, 0…

উদাহরণ

ইনপুট ১

N = 7

আউটপুট ১

0

ইনপুট ২

N = 6

আউটপুট ২

-120

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

এই সমস্যার সহজ সমাধান হল হারমাইট সংখ্যার সূত্র ব্যবহার করা। এটি রিকার্সন দিয়ে করা যায়, আমরা Nতম টার্ম বের করতে পারি।

প্রোগ্রাম উদাহরণ (রিকারসিভ পদ্ধতি)

#include <iostream>
using namespace std;

int calcNHermiteNumber(int N) {
    if (N == 0)
        return 1;
    if (N % 2 == 1)
        return 0;
    else
        return -2 * (N - 1) * calcNHermiteNumber(N - 2);
}

int main() {
    int N = 10;
    cout << "The " << N << "th hermite Number is " << calcNHermiteNumber(N);
    return 0;
}

আউটপুট

The 10th hermite Number is -30240

দক্ষ পদ্ধতি (সাধারণ সূত্র)

এই সমস্যা সমাধানের একটি দক্ষ পদ্ধতি হল সাধারণ সূত্র ব্যবহার করা। আমরা রিকারসিভ সূত্র থেকে সাধারণ সূত্র বের করতে পারি।

এখানে, যদি N বিজোড় হয়, হারমাইট সংখ্যা ০।

যদি N জোড় হয়, তবে মান হবে সূত্র অনুযায়ী:

HN = (-1)^(N/2) × 2^(N/2) × (N-1)!!

এখানে (N-1)!! হল সেমি-ফ্যাক্টোরিয়াল যা ক্যালকুলেট হয় (n-1)×(n-3)×...×3×1।

প্রোগ্রাম উদাহরণ (দক্ষ পদ্ধতি)

#include <iostream>
#include <math.h>
using namespace std;

int calcSemiFact(int n) {
    int factVal = 1;
    for (int i = 1; i <= n; i = i + 2) {
        factVal *= i;
    }
    return factVal;
}

int calcNHermiteNumber(int n) {
    if (n % 2 == 1)
        return 0;
    
    int hermiteNumber = (pow(2, n / 2)) * calcSemiFact(n - 1);
    if ((n / 2) % 2 == 1)
        hermiteNumber *= -1;
    
    return hermiteNumber;
}

int main() {
    int N = 10;
    cout << "The " << N << "th hermite Number is " << calcNHermiteNumber(N);
    return 0;
}

আউটপুট

The 10th hermite Number is -30240
  1. C++-এ সর্টেড অ্যারেতে সবচেয়ে কাছাকাছি সংখ্যা (Closest Number) খুঁজে বের করা

  2. C++-এ অ্যারিথমেটিক নম্বর

  3. C++-এ 유리 সংখ্যার LCM খুঁজে বের করা

  4. C++-এ CHAR_BIT