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

C++-এ x^(y²) এবং y^(x²) এর মধ্যে বড়টি বের করুন

দুটি সংখ্যা x এবং y দেওয়া আছে। x^(y²) এবং y^(x²) — এই দুটোর মধ্যে কোনটি বড় সেটা বের করতে হবে।

উদাহরণ

ইনপুট: x = 4, y = 3

  • x^(y²) = 4^(3²) = 4⁹ = 262,144
  • y^(x²) = 3^(4²) = 3¹⁶ = 43,046,721

আউটপুট: 3^(4^2) (দ্বিতীয়টি বড়)

গাণিতিক সমাধান (লগারিদম ব্যবহার)

সরাসরি মান বের করলে ওভারফ্লো হয়ে যায় বড় ইনপুটে। ন্যাচারেল লগ (ln) নিন:

  • ln(x^(y²)) = y² · ln(x)
  • ln(y^(x²)) = x² · ln(y)

দউভয়কে x²y²-দিয়ে ভাগ করলে:

  • ln(x)/x² vs ln(y)/y²

ফাংশন f(t) = ln(t)/t² হল মনোটোনিক্যালি ডিক্রিজিং (t > e^0.5 ≈ 1.65 এর জন্য)। সুতরাং:

  • যদি x > y হয় → f(x) < f(y) → x^(y²) < y^(x²)
  • অর্থাৎ বড় বেসের এক্সপোনেনশিয়াল ছোট হয়।

সহজ নিয়ম

যদি x > y হয়, তবে y^(x²) বড়। যদি x < y হয়, তবে x^(y²) বড়।

C++ প্রোগ্রাম

#include <iostream>
using namespace std;

bool checkGreaterVal(int x, int y) {
    if (x > y) return false; // y^(x^2) বড়
    else return true;        // x^(y^2) বড়
}

int main() {
    int x = 3, y = 5;
    cout << "The greater value is ";
    if (checkGreaterVal(x, y))
        cout << x << "^(" << y << "^2)";
    else
        cout << y << "^(" << x << "^2)";
    return 0;
}

আউটপুট

The greater value is 3^(5^2)

ব্যাখ্যা

  • x=3, y=5 → x < y → x^(y²) বড়।
  • কোনো বড় সংখ্যা ক্যালকুলেশন লাগেনি, শুধু কমপ্যারিজন।
  • এজ কেস: x=y হলে উভয় সমান। x=1 বা y=1 হলে স্পেশ্যাল হ্যান্ডলিং লাগতে পারে।
  1. C++-এ বাইনারি ট্রির সকল রাইট নোডের মধ্যে সর্বোচ্চ মান বের করুন

  2. C++ ব্যবহার করে AP-এ একটি সংখ্যা আছে কিনা চেক করা

  3. যোগফল এবং GCD দিয়ে দুটি সংখ্যা বের করা (C++)

  4. C++-এ দিয়ে गये GCD এবং LCM থেকে যেকোনো পেয়ার খুঁজে বের করা