बहुपद पद वाली एक स्ट्रिंग को देखते हुए, कार्य उस बहुपद के व्युत्पन्न का मूल्यांकन करना है।
बहुपद क्या है?
बहुपद दो शब्दों से मिलकर बना है:- "बहु" जिसका अर्थ है "कई" और "नाममात्र" का अर्थ है "शब्द", जिसमें कई शब्द शामिल हैं। बहुपद व्यंजक एक व्यंजक है जिसमें चर, गुणांक और घातांक होते हैं, जिसमें केवल चर (चरों) का जोड़, गुणा और घटाव जैसे संक्रियाएं शामिल होती हैं।
बहुपद का उदाहरण
x2+x+1
बहुपद का व्युत्पन्न p(x) =mx^n होगा -
एम * एन * एक्स ^ (एन -1)
उदाहरण
इनपुट:str ="2x^3 +1x^1 + 3x^2" वैल =2आउटपुट:37स्पष्टीकरण:6x^2 + 1x^0 + 6x^1 x =2 6*4 + 1 + 6*2 =24 + 1 + 12 =37 इनपुट:str ="1x^3" वैल =2आउटपुट:12स्पष्टीकरण:1 * 3 *x^2 x =2 3 * 4 =12 डालनाउपरोक्त समस्या को हल करने के लिए हम जिस दृष्टिकोण का उपयोग करेंगे -
- इनपुट को एक स्ट्रिंग और x के मान के रूप में लें
- अब स्ट्रिंग को पार करें और अंकों और चरों की जांच करें।
- जब तक हमें '+' न मिल जाए, तब तक स्ट्रिंग को जोड़ते और ट्रैवर्स करते रहें।
- फिर m * n * x^(n-1).
- परिणाम लौटाएं।
एल्गोरिदम
स्टार्टस्टेप 1-> फंक्शन में लॉन्ग टर्म (स्ट्रिंग पॉलीटर्म, लॉन्ग लॉन्ग वैल) डिक्लेयर और इनिशियलाइज़ coeffStr ="" i लूप फॉर i =0 और पॉलीटर्म [i]! ='x' और i++ कॉल coeffStr.push_back (पॉलीटर्म [i]) सेट कोएफ़ =एटोल (coeffStr.c_str() घोषित करें और powStr ="" लूप फॉर i =i + 2 और i! =polyterm.size() और i++ powStr.push_back(polyterm[i]) सेट पावर =एटोल (powStr.c_str ()); रिटर्न कोएफ़ * पावर * पाउ (वैल, पावर - 1) चरण 2-> फ़ंक्शन लॉन्ग लॉन्ग वैल्यू (स्ट्रिंग एंड स्ट्र, इंट वैल) में सेट करें उत्तर =0 कॉल आईस्ट्रिंगस्ट्रीम है (str ) स्ट्रिंग पॉलीटर्म लूप जबकि है>> पॉलीटर्म घोषित करें यदि पॉलीटर्म =="+" है, तो जारी रखें अन्य सेट उत्तर =(उत्तर + टर्म (पॉलीटर्म, वैल)) उत्तर चरण 3-> फ़ंक्शन में int main() घोषित करें और प्रारंभ करें str ="2x^3 + 1x^1 + 3x^2" वैल =2 घोषित करें और प्रारंभ करें मान (str, वैल) स्टॉप द्वारा प्राप्त मान प्रिंट करें
उदाहरण
#includeuseing namespace std;long long term(string polyterm, long long val) {// गुणांक खोजने के लिए स्ट्रिंग coeffStr =""; इंट आई; for (i =0; polyterm[i] !='x'; i++) coeffStr.push_back(polyterm[i]); लंबे लंबे कोएफ़ =एटोल (coeffStr.c_str ()); // पावर वैल्यू स्ट्रिंग प्राप्त करने के लिए powStr =""; के लिए (i =i + 2; i!=polyterm.size(); i++) powStr.push_back(polyterm[i]); लंबी लंबी शक्ति =एटोल (powStr.c_str ()); // कुल्हाड़ी ^ एन के लिए, हम एक (एन -1) एक्स ^ (एन -1) वापसी गुणांक * शक्ति * पाउ (वैल, पावर - 1);} लंबे लंबे मूल्य (स्ट्रिंग और स्ट्र, इंट वैल) {लंबे लंबे समय तक लौटाते हैं उत्तर =0; // टोकन में इनपुट प्राप्त करने के लिए istringstream का उपयोग करना istringstream is(str); स्ट्रिंग पॉलीटर्म; जबकि (is>> polyterm) {// जांचें कि क्या टोकन '+' के बराबर है, तो // स्ट्रिंग के साथ जारी रखें यदि (पॉलीटर्म =="+") जारी है; // अन्यथा उस का व्युत्पत्ति ज्ञात कीजिए } उत्तर दें;}// मुख्य कार्य मुख्य () {स्ट्रिंग str ="2x^3 + 1x^1 + 3x^2"; इंट वैल =2; cout <<मान (str, वैल); वापसी 0;}
आउटपुट
37