यहां हम देखेंगे कि किसी संख्या का घनमूल कैसे निकाला जाता है। मान लीजिए कि एक संख्या 27 है, तो इस संख्या का घनमूल 3 है। इस समस्या को हल करने के लिए, हम कुछ पुस्तकालय कार्यों का उपयोग किए बिना अपने स्वयं के तर्क को परिभाषित करेंगे। हम द्विआधारी खोज दृष्टिकोण का उपयोग करेंगे। इस समस्या को हल करने के लिए हमें इन चरणों का पालन करना होगा।
मान लीजिए कि हमारे पास थ्रेशोल्ड मान है जैसे थ्रेशोल्ड =0.000001
-
बाएँ मान को 0 से प्रारंभ करें, और दाएँ मान को संख्या के रूप में प्रारंभ करें
-
मध्य की गणना करें:=(बाएं + दाएं)/2
-
यदि (संख्या - मध्य 3) का निरपेक्ष मान थ्रेशोल्ड से कम है, तो उत्तर के रूप में मध्य में लौटें
-
यदि मध्य 3 संख्या से बड़ा है, तो दाएं सेट करें:=मध्य
-
यदि मध्य 3 संख्या से कम है, तो बाएं सेट करें:=मध्य
उदाहरण
#include<iostream> #include<cmath> using namespace std; double cubeRoot(int num) { double threshold = 0.000001; double left = 0, right = num; double mid; while(left <= right){ mid = (left + right)/2; if(abs(num - (mid*mid*mid)) < threshold) return mid; if((mid*mid*mid) > num) right = mid; if((mid*mid*mid) < num) left = mid; } } int main() { int n = 3; cout << "cube root of 3 is: " << cubeRoot(n); }
आउटपुट
cube root of 3 is: 1.44225