आपका काम न्यूटन की विधि का उपयोग करके 2 के वर्गमूल की गणना करना है - एक मामूली मोड़ के साथ। आपका कार्यक्रम न्यूटन की विधि का उपयोग करके एक पुनरावृत्ति की गणना करना है, और निम्न पुनरावृत्ति के लिए स्रोत कोड को आउटपुट करना है (जो कि ऐसा करने में सक्षम होना चाहिए)।
न्यूटन की विधि विकिपीडिया पर काफी विस्तृत रूप से वर्णित है
न्यूटन विधि का उपयोग करके वर्गमूल 2 की गणना करने के लिए, आप:
- परिभाषित करें
f(x) = x^2 - 2
- परिभाषित करें
f'(x) = 2x
- परिभाषित करें
x[0]
(प्रारंभिक अनुमान)= 1
- परिभाषित करें
x[n+1] = x[n] - (f[n] / f'[n])
प्रत्येक पुनरावृत्ति x [n] को दो के वर्गमूल के करीब ले जाएगी। इसलिए -
x[0] = 1
x[1] = x[0] - f(x[0])/f'(x[0]) = 1 - (1 ^ 2 - 2) / (2 * 1) = 1.5
x[2] = x[1] - f(x[1])/f'(x[1]) = 1.5 - (1.5 ^ 2 - 2) / (2 * 1.5) = 1.416666667
x[3] = x[2] - f(x[2])/f'(x[1]) = 1.416666667 - (1.416666667 ^ 2 - 2) / (2 * 1.416666667) = 1.414215686
- और इसी तरह
आपका कार्यक्रम होगा:
- गणना करें
x[n]
कि कहां हैn
समय की राशि कार्यक्रम चलाने की गई है - स्रोत कोड को उसी भाषा में मान्य प्रोग्राम के लिए आउटपुट करें जिसे गणना करना आवश्यक है
x[n+1]
इस प्रश्न के समान मानदंड की और संतुष्ट । - स्रोत कोड की पहली पंक्ति गणना परिणाम, ठीक से टिप्पणी की जानी चाहिए। यदि स्रोत को पहली पंक्ति में कुछ विशेष (जैसे कि शेबंग) की आवश्यकता होती है, तो परिणाम दूसरी पंक्ति में रखा जा सकता है।
ध्यान दें कि
- आपके प्रोग्राम को आरंभिक अनुमान का उपयोग करना चाहिए
x[0] = 1
- स्टैंडर्ड कमियां लागू
- किसी भी इन-बिल्ड पावर, स्क्वायर रूट या एक्सरोट फ़ंक्शन को मना किया जाता है
- आपके प्रोग्राम को किसी भी इनपुट को स्वीकार नहीं करना चाहिए। यह पूरी तरह से आत्म निहित होना चाहिए।
आपका स्कोर UTF-8 बाइट्स में आपके प्रारंभिक कार्यक्रम का आकार है। सबसे कम स्कोर जीतता है।
x = x-(x*x-2)/(2*x)
?