इस समस्या में, हमें दो मान x और y दिए गए हैं। हमारा कार्य x^(y^2) या y^(x^2) के बीच अधिकतम ज्ञात करना है जहां x और y दिए गए हैं।
समस्या को समझने के लिए एक उदाहरण लेते हैं,
इनपुट: एक्स =4, वाई =3
आउटपुट: 3^(4^2)
स्पष्टीकरण:
x^(y^2) =4^(3^2) =4^9 =262144
y^(x^2) =3^(4^2) =3^16 =43046721
समाधान दृष्टिकोण
एक दृष्टिकोण दोनों मूल्यों की गणना करना और फिर दोनों का अधिकतम प्रिंट करना हो सकता है। लेकिन जब मान बड़े होते हैं तो यह तरीका काम नहीं करता है।
एक सरल और आसान तरीका प्राकृतिक लॉग (ln) का उपयोग करना है जो समाधान आसान होगा।
ln(x^(y^2)) =(y^2) * ln(x)
ln(y^(x^2)) =(x^2) * ln(y)
यहाँ, मान x और y के सीधे समानुपाती नहीं हैं। तो, आइए मानों को (x^2)*(y^2) से विभाजित करें। यह मूल्य बनाता है,
ln(x^(y^2)) / (x^2)*(y^2) =ln(x) / (x^2)
ln(y^(x^2)) / (x^2)*(y^2) =ln(y)/ (y^2)
ये मान परिणामी मान के व्युत्क्रमानुपाती होते हैं।
यदि x> y, तो x^(y^2) हमारे समाधान की कार्यप्रणाली को दर्शाने वाला कार्यक्रम,
उदाहरण
#include <iostream>
using namespace std;
bool checkGreaterVal(int x, int y) {
if (x > y)
return false;
else
return true;
}
int main() {
int x = 3;
int 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)