आप सभी न्यूटन विधि को किसी फ़ंक्शन की जड़ों के बारे में जानते हैं, है ना? इस कार्य में मेरा लक्ष्य आपको इस एल्गोरिथम के एक दिलचस्प पहलू से परिचित कराना है।
न्यूटन का एल्गोरिथ्म केवल कुछ विशेष, लेकिन सभी जटिल इनपुट मूल्यों के लिए ही परिवर्तित होता है। यदि आप जटिल विमान पर सभी इनपुट मूल्यों के लिए विधि के अभिसरण का चित्र बनाते हैं, तो आपको आमतौर पर इस तरह एक सुंदर फ्रैक्टल मिलता है:
विशेष विवरण
इस कार्य का लक्ष्य ऐसे भग्न पैदा करना है। इसका मतलब है, कि आपको इनपुट के रूप में एक बहुपद मिलता है और आउटपुट के रूप में अपनी पसंद के प्रारूप में एक छवि के रूप में संबंधित भग्न को प्रिंट करना पड़ता है।
इनपुट
इनपुट जटिल संख्याओं की एक व्हाट्सएप-अलग-अलग सूची है। वे शैली में नीचे लिखा जाता है <Real part><iImaginary part>
, तो यह संख्या की तरह: 5.32i3.05
। आप मान सकते हैं, कि इनपुट संख्या में 4 से अधिक दशमलव स्थान नहीं हैं और 1000 से छोटे हैं। उनमें से पहला शून्य नहीं होना चाहिए। उदाहरण के लिए, यह आपके प्रोग्राम का इनपुट हो सकता है:
1 -2i.5.5 23.0004i-3.8 i12 0 5.1233i0.1
संख्याओं को एक बहुपद के गुणांक के रूप में व्याख्या की जाती है, जिसकी शुरुआत उच्चतम शक्ति से होती है। इस विनिर्देश के बाकी हिस्सों में, इनपुट बहुपद को P कहा जाता है । उपरोक्त इनपुट इस बहुपद के बराबर है:
f (x) = x 5 + (-2 + 7.5 i ) x 4 + (23.0004 - 3.8 i ) x 3 + 12 i x 2 + 5.1233 + 0.1 i
इनपुट आपके पास या तो स्टडिन से आ सकता है, एक तर्क से प्रोग्राम में पारित हो सकता है या आपके प्रोग्राम में प्रदर्शित एक प्रॉम्प्ट से हो सकता है। आप मान सकते हैं, कि इनपुट में कोई भी प्रमुख या अनुगामी व्हाट्सएप वर्ण नहीं है।
प्रतिपादन
आपको निम्नलिखित तरीके से भग्न को प्रस्तुत करना होगा:
- पी प्लस की जड़ों के रूप में कई रंगों का चयन करें। विचलन के लिए एक अतिरिक्त रंग
- दृश्यमान विमान में प्रत्येक संख्या के लिए, यह निर्धारित करें कि क्या विधि अभिसरण करती है और यदि किस रूट के लिए हाँ। परिणाम के अनुसार बिंदु को रंग दें।
- शासक या अन्य फैंसी चीजें न छापें
- बिंदुओं पर एक काला बिंदु प्रिंट करें, जो कि अभिविन्यास के लिए बहुपद हैं। आप प्रत्येक रूट के चारों ओर चार पिक्सेल तक प्रिंट कर सकते हैं।
- एक तरह से दिखाई देने वाले विमान को चुनने का एक तरीका खोजें, ताकि सभी जड़ें अलग-अलग हो जाएं और यदि संभव हो तो व्यापक रूप से फैल जाए। हालाँकि आउटपुट फ्रेम का एक सही स्थान की आवश्यकता नहीं है, मैं एक जवाब स्वीकार करने से इनकार करने का अधिकार सुरक्षित रखता हूं जो अस्वीकार्य तरीके से फ्रेम चुनता है, जैसे। हमेशा एक ही निर्देशांक पर, सभी जड़ें एक बिंदु में होती हैं, आदि।
- आउटपुट छवि का आकार 1024 * 1024 पिक्सेल होना चाहिए।
- रेंडरिंग का समय अधिकतम 10 मिनट है
- एकल सटीक फ्लोटिंग-पॉइंट वैल्यू का उपयोग करना पर्याप्त है
उत्पादन
आउटपुट को आपकी पसंद के फ़ाइल प्रारूप में एक रेखापुंज ग्राफिक्स छवि होना चाहिए, जो ब्रांड एक्स ऑपरेटिंग सिस्टम के लिए मानक सॉफ़्टवेयर द्वारा पठनीय है। यदि आप एक दुर्लभ प्रारूप का उपयोग करना चाहते हैं, तो एक वेबसाइट पर एक लिंक जोड़ने पर विचार करें जहां कोई इसके लिए एक दर्शक डाउनलोड कर सकता है।
फ़ाइल को स्टडआउट में आउटपुट करें। यदि आपकी भाषा स्टडआउट में कुछ डालने का समर्थन नहीं करती है या यदि आपको यह विकल्प कम सुविधाजनक लगता है, तो दूसरा तरीका खोजें। किसी भी तरह से, उत्पन्न छवि को बचाने के लिए संभव होना चाहिए।
प्रतिबंध
- कोई इमेज प्रोसेसिंग लाइब्रेरी नहीं
- कोई फ्रैक्टल जनरेटिंग लाइब्रेरी नहीं
- सबसे छोटा कोड जीतता है
एक्सटेंशन
यदि आप इस कार्य को पसंद करते हैं, तो आप अभिसरण की गति या कुछ अन्य मानदंडों के अनुसार अंकों को रंगने की कोशिश कर सकते हैं। मैं कुछ दिलचस्प परिणाम देखना चाहूंगा।