एक स्व-निहित कार्यक्रम लिखें, जब एक बहुपद दिया जाता है और एक बाउंड को पार न करने के लिए उस बहुपद की सभी वास्तविक जड़ें मिलेंगी।
प्रतिबन्ध
मुझे पता है कि गणितज्ञ और शायद कुछ अन्य भाषाओं में एक-प्रतीक समाधान है, और यह उबाऊ है, इसलिए आपको आदिम संचालन (इसके अलावा, घटाव, गुणन, विभाजन) से चिपके रहना चाहिए।
इनपुट और आउटपुट प्रारूपों पर कुछ निश्चित लचीलापन है। आप किसी भी उचित प्रारूप में स्टडिन या कमांड-लाइन तर्कों के माध्यम से इनपुट ले सकते हैं। आप फ़्लोटिंग पॉइंट की अनुमति दे सकते हैं या आवश्यकता हो सकती है कि तर्कसंगत संख्याओं के कुछ प्रतिनिधित्व का उपयोग किया जाए। आप बाउंड या बाउंड के पारस्परिक ले सकते हैं, और यदि आप फ़्लोटिंग पॉइंट का उपयोग कर रहे हैं, तो आप मान सकते हैं कि बाउंड 2 ulp से कम नहीं होगा। बहुपद को मोनोमियल गुणांक की सूची के रूप में व्यक्त किया जाना चाहिए, लेकिन यह बड़ा हो सकता है- या थोड़ा-सा।
आपको यह साबित करने में सक्षम होना चाहिए कि आपका प्रोग्राम हमेशा काम क्यों करेगा (modulo numerical issues), हालांकि पूर्ण साक्ष्य इनलाइन की आपूर्ति करना आवश्यक नहीं है।
कार्यक्रम को बार-बार जड़ों के साथ बहुपद को संभालना चाहिए।
उदाहरण
x^2 - 2 = 0 (error bound 0.01)
इनपुट उदाहरण हो सकता है
-2 0 1 0.01
100 1 0 -2
1/100 ; x^2-2
आउटपुट उदाहरण के लिए हो सकता है
-1.41 1.42
लेकिन नहीं
-1.40 1.40
जैसा कि लगभग 0.014 की पूर्ण त्रुटियाँ हैं ...
परीक्षण के मामलों
सरल:
x^2 - 2 = 0 (error bound 0.01)
x^4 + 0.81 x^2 - 0.47 x + 0.06 (error bound 10^-6)
एकाधिक रूट:
x^4 - 8 x^3 + 18 x^2 - 27 (error bound 10^-6)
विल्किंसन की बहुपद:
x^20 - 210 x^19 + 20615 x^18 - 1256850 x^17 + 53327946 x^16 -1672280820 x^15 +
40171771630 x^14 - 756111184500 x^13 + 11310276995381 x^12 - 135585182899530 x^11 +
1307535010540395 x^10 - 10142299865511450 x^9 + 63030812099294896 x^8 -
311333643161390640 x^7 + 1206647803780373360 x^6 -3599979517947607200 x^5 +
8037811822645051776 x^4 - 12870931245150988800 x^3 + 13803759753640704000 x^2 -
8752948036761600000 x + 2432902008176640000 (error bound 2^-32)
NB यह प्रश्न लगभग 3 महीने तक सैंडबॉक्स में था । यदि आपको लगता है कि पोस्ट करने से पहले इसमें सुधार की आवश्यकता है, तो सैंडबॉक्स पर जाएं और अन्य प्रस्तावित प्रश्नों पर टिप्पणी करें, इससे पहले कि वे मेन पर पोस्ट किए जाएं।
fractions.Fraction
(एक तर्कसंगत प्रकार) का उपयोग करता है? (c) क्या हमें डिग्री <1 के बहुपदों को संभालना है? (d) क्या हम मान सकते हैं कि अग्रणी गुणांक 1 है?