দুটি সংখ্যা x এবং y দেওয়া আছে। x^(y²) এবং y^(x²) — এই দুটোর মধ্যে কোনটি বড় সেটা বের করতে হবে।
উদাহরণ
ইনপুট: x = 4, y = 3
x^(y²) = 4^(3²) = 4⁹ = 262,144y^(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²vsln(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হলে স্পেশ্যাল হ্যান্ডলিং লাগতে পারে।