Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> C++

C++ में तेजी से उलटा वर्गमूल

इस समस्या में, हमें एक पूर्णांक x दिया गया है। हमारा काम तेजी से उलटा वर्गमूल ( .) की गणना करना है ) 32-बिट फ्लोटिंग पॉइंट नंबर का।

संख्या के व्युत्क्रम वर्गमूल को खोजने के लिए एल्गोरिथ्म प्रोग्रामिंग में बहुत उपयोगी है, जैसे कि वीडियो गेम में वेक्टर सामान्यीकरण, 3D ग्राफ़िक्स आदि में

एल्गोरिदम:

चरण 1: एल्गोरिदम फ़्लोटिंग पॉइंट मान को पूर्णांक में कनवर्ट करता है।

चरण 2: पूर्णांक मान पर कार्य करें और प्रतिलोम वर्गमूल का अनुमानित मान लौटाएं।

चरण 3: चरण 1 में उपयोग की गई समान विधि का उपयोग करके पूर्णांक मान को वापस फ़्लोटिंग पॉइंट में बदलें।

चरण 4: न्यूटन की विधि का उपयोग करके सटीकता में सुधार के लिए सन्निकटन किया जाता है।

एल्गोरिदम की कार्यप्रणाली को दर्शाने वाला कार्यक्रम:

उदाहरण

#include<iostream>
using namespace std;

float calcInvSqRoot( float n ) {
   
   const float threehalfs = 1.5F;
   float y = n;
   
   long i = * ( long * ) &y;

   i = 0x5f3759df - ( i >> 1 );
   y = * ( float * ) &i;
   
   y = y * ( threehalfs - ( (n * 0.5F) * y * y ) );
   
   return y;
}

int main(){
   
   int n = 256;
   float invSqRoot = calcInvSqRoot(n);
   cout<<"The inverse square root of the number "<<n<<" is "<<invSqRoot;
   
   return 0;
}

आउटपुट -

The inverse square root of the number 256 is 0.0623942

  1. C++ . में सममित वृक्ष

    मान लीजिए कि हमारे पास एक बाइनरी ट्री है और कार्य यह जांचना है कि यह स्वयं की समरूपता का निर्माण करता है या नहीं। एक सममित बाइनरी ट्री स्वयं की दर्पण छवि का निर्माण करता है। उदाहरण के लिए इनपुट-1: आउटपुट: True स्पष्टीकरण: चूंकि दिया गया बाइनरी ट्री स्वयं की मिरर इमेज बनाता है, आउटपुट ट

  1. C++ में बाइनरी ट्री टिल्ट

    आइए मान लें कि हमारे पास एक बाइनरी ट्री का रूट नोड है; कार्य प्रत्येक नोड के झुकाव के योग को खोजना और वापस करना है। झुकाव एक बाइनरी ट्री कुछ भी नहीं है, बल्कि प्रत्येक स्तर में लेफ्ट सबट्री और राइट सबट्री में चाइल्ड नोड्स के पूर्ण अंतर को खोजकर बाइनरी ट्री का निर्माण करना है। किसी विशेष स्तर पर, जि

  1. C++ में NaN क्या है?

    NaN, Not a Number का संक्षिप्त रूप है। यह अपरिभाषित या गैर-प्रतिनिधित्व योग्य फ़्लोटिंग पॉइंट तत्वों को इंगित करता है। NaN का एक उदाहरण किसी ऋणात्मक संख्या का वर्गमूल या 0/0 का परिणाम है। उदाहरण #शामिल करें आउटपुट -5 का वर्गमूल:nan