किसी भी अंतर्निहित फैक्टरिंग / बहुपद कार्यों का उपयोग किए बिना, पूर्णांक या एक परिमित क्षेत्र पर पूरी तरह से irreducibles में एक बहुपद का कारक।
इनपुट
आपके प्रोग्राम / फ़ंक्शन n
को इनपुट के रूप में कुछ प्राइम (या शून्य) नंबर प्राप्त होंगे । क्षेत्र / अंगूठी है कि आदेश (यानी के परिमित क्षेत्र है Z/nZ
), या बस Z
यदि n
है 0
। आपका प्रोग्राम विफल हो सकता है अगर कोई प्राइम है या n
नहीं 0
। बहुपद में होगा F[x]
।
आपके कार्यक्रम / फ़ंक्शन को इनपुट के रूप में बहुपद भी प्राप्त होगा।
इनपुट में कुछ लचीलापन है, यह निर्दिष्ट करना सुनिश्चित करें कि आप इनपुट प्राप्त करने का इरादा रखते हैं। उदाहरण के लिए, बहुपद गुणांक की एक सूची के रूप में इनपुट हो सकता है, या जिस रूप में अधिकांश लोग अपेक्षा करते हैं (पूर्व:) 50x^3 + x^2
, या कुछ अन्य उचित रूप में। या फ़ील्ड / रिंग को इनपुट करने का प्रारूप भी भिन्न हो सकता है।
उत्पादन
आपका कार्यक्रम / समारोह पूरी तरह से बहुपद फैक्टर का उत्पादन करेगा। आप कई जड़ों को विस्तारित (यानी के (x + 1)(x + 1)
बजाय (x + 1)^2
) छोड़ सकते हैं । आप बाइनरी ऑपरेटरों के बीच व्हाट्सएप को हटा सकते हैं। आप के साथ juxtaposition बदल सकते हैं *
। आप अजीब जगहों पर व्हॉट्सएप डाल सकते हैं। आप जो भी आदेश चाहते हैं उसमें कारकों को फिर से दर्ज कर सकते हैं। x
अवधि सिर्फ हो सकता है (x)
। x
के रूप में लिखा जा सकता है x^1
; हालांकि निरंतर अवधि नहीं हो सकती है x^0
। बाहरी +
संकेत स्वीकार्य हैं। आपके सामने एक शब्द नहीं हो सकता है 0
, उन्हें छोड़ दिया जाना चाहिए। प्रत्येक कारक का अग्रणी शब्द सकारात्मक होना चाहिए, नकारात्मक संकेत बाहर होना चाहिए।
परीक्षण के मामले, आपका कार्यक्रम उचित समय में इनमें से प्रत्येक के लिए उत्पादन करने में सक्षम होना चाहिए (जैसे, <= 2 घंटे):
इनपुट: 2, x^3 + x^2 + x + 1
आउटपुट: (x + 1)^3
इनपुट: 0, x^3 + x^2 + x + 1
आउटपुट: (x + 1)(x^2 + 1)
इनपुट: 0, 6x^4 – 11x^3 + 8x^2 – 33x – 30
आउटपुट: (3x + 2)(2x - 5)(x^2 + 3)
इनपुट: 5, x^4 + 4x^3 + 4x^2 + x
आउटपुट: x(x + 4)(x + 4)(x + 1)
इनपुट: 0, x^5 + 5x^3 + x^2 + 4x + 1
आउटपुट: (x^3 + 4x + 1)(x^2 + 1)
मेरे परीक्षण मामलों की आलोचना के लिए पीटर टेलर का विशेष धन्यवाद
p
तत्व होते हैं {0, 1, ... , p-1}
और यह जोड़ / गुणा मॉड के तहत होता है p
। मूल रूप से, मॉड द्वारा किसी भी गुणांक को कम करें p
और आप अच्छे हैं। यह भी ध्यान दें कि यदि इसका मूल यानी रैखिक कारक है, तो बहुपद में प्लग करने पर इसका एक (मॉड ) {0, ... , p-1}
उत्पादन होगा । 0
p
Z
लिए फैक्टर ओवर है । हालांकि, गोल्फ का दृष्टिकोण संभवतः (और यह निश्चित रूप से वह मार्ग है जिसे मैं देख रहा हूं) कारकों की ऊंचाई पर एक साधारण बाउंड का उपयोग करने के लिए और इसे बल देने के लिए। Z/pZ
p