चूंकि ऋषि नि: शुल्क और मुक्त स्रोत है, इसलिए आपको ऋषि का उपयोग करने वाले एल्गोरिदम को खोजने में सक्षम होना चाहिए और फिर उसे कॉल करना चाहिए या सी में इसे फिर से कार्यान्वित करना चाहिए। हालांकि, अगर आपको वास्तव में स्क्रैच से एक प्रक्रिया लिखनी है, तो मैं वही करता हूं: सबसे पहले सभी गुणांक के जीसीडी को ढूंढें और इसे विभाजित करें, जो आपके बहुपद "सामग्री मुक्त" बनाता है। फिर व्युत्पन्न लें और मूल बहुपद और इसके व्युत्पन्न के बहुपद जीसीडी को खोजें। उस कारक को बहुपद विभाजन से मूल बहुपद से बाहर ले जाएं, जो आपकी समस्या को दो हिस्सों में विभाजित करता है: एक सामग्री मुक्त, वर्ग मुक्त बहुपद (पी/जीसीडी (पी, पी ') फैक्टरिंग, और एक और बहुपद (जीसीडी (पी, पी ')) जो वर्ग मुक्त नहीं हो सकता है। उत्तरार्द्ध के लिए, शुरुआत में शुरू करें, जब तक कि आप एक या अधिक सामग्री मुक्त, स्क्वायर-मुक्त बहुपदों को फैक्टरिंग करने में समस्या को कम नहीं कर लेते।
अगला चरण एक फैक्टरिंग एल्गोरिदम मॉड पी लागू करना होगा। बर्लकैम्प का एल्गोरिदम संभवतः सबसे आसान है, हालांकि कैंटोर-जैस्हेनॉस कला का राज्य है।
अंत में, पूर्णांक पर कारक के लिए ज़ैसहेनॉस एल्गोरिदम लागू करें। यदि आपको लगता है कि यह बहुत धीमा है, तो इसे "लेन्स्ट्रा-लेनस्ट्रा-लोवाज़ जाली आधार कमी एल्गोरिदम" का उपयोग करके बेहतर किया जा सकता है। http://en.wikipedia.org/wiki/Factorization_of_polynomials#Factoring_univariate_polynomials_over_the_integers
जैसा कि आप देख सकते हैं, यह सब जटिल है और सार बीजगणित से सिद्धांत के एक बड़े पैमाने पर निर्भर करता है। ऋषि कार्यान्वयन, या यहां तक कि केवल अपने प्रोग्राम के भीतर सेज कर्नेल के चल रहे संस्करण को कॉल करने के लिए, उसी लाइब्रेरी का उपयोग करके आप बहुत बेहतर हैं।
स्रोत
2015-04-12 20:18:21
मैटलैब या इसी तरह का उपयोग क्यों नहीं करें? –
@ निकोसेनक्रैंटज़, आमतौर पर मैं इस उद्देश्य के लिए ऋषि गणित का उपयोग करता हूं। लेकिन अब मैं एल्गोरिदम को महसूस कर रहा हूं जो महत्वपूर्ण रूप से बहुपद कारक पर निर्भर करता है और जीपीयू (कुडा या ओपनक्ल आधारित) भी लक्ष्य मंच के रूप में है। तो यह सी – petRUShka
हो सकता है कि शायद न्यूटन विधि चलाएं, कारक पाएं, बहुपद विभाजन, दोहराएं। – Makoto