मैं bignums के लिए लंबे विभाजन को लागू करने की कोशिश कर रहा हूं। मैं एम्बेडेड प्रोग्रामिंग की सीमाओं के कारण दुर्भाग्यवश जीएमपी जैसी लाइब्रेरी का उपयोग नहीं कर सकता। इसके अलावा, मैं सीखने का बौद्धिक अभ्यास चाहता हूं कि इसे कैसे कार्यान्वित किया जाए। अब तक मुझे बाइट्स के किसी भी लंबाई के सरणी का उपयोग करके अतिरिक्त और गुणा किया गया है (इसलिए प्रत्येक बाइट बेस -256 अंक की तरह है)।भारी संख्याओं के लिए लंबे विभाजन को कार्यान्वित करने के लिए कैसे करें (bignums)
मैं बस विभाजन/मॉड्यूलस को लागू करने के लिए शुरू करने की कोशिश कर रहा हूं और मैं जानना चाहता हूं कि कहां से शुरू करना है? मुझे नेट पर बहुत अधिक अनुकूलित (उर्फ अपठनीय) कोड मिला है, जो मेरी मदद नहीं करता है, और मुझे बहुत सारे तकनीकी-गणितीय श्वेतपत्र मिले हैं जिनसे मैं सिद्धांत और कार्यान्वयन के बीच के अंतर को पुल नहीं कर सकता ।
अगर कोई लोकप्रिय एल्गोरिदम की सिफारिश कर सकता है, और मुझे स्पष्टीकरण को समझने के लिए एक सरल को इंगित करता है जो इम्प्लेमेनेंटेशन की ओर झुकता है, तो यह शानदार होगा।
-संपादित: लाभांश है जब मैं एल्गोरिदम, जो काम की जरूरत है ~ 4000bits, और भाजक ~ है 2000bits
-संपादित: आधार-256 के साथ क्या यह एल्गोरिथ्म काम करता है? http://courses.cs.vt.edu/~cs1104/BuildingBlocks/divide.030.html
-edit: क्या यह वास्तव में उपयोग करने वाला एल्गोरिदम (न्यूटन डिवीजन) है? http://en.wikipedia.org/wiki/Division_(digital)#Newton.E2.80.93Raphson_division
मुझे मिला यह, लेकिन मुझे यकीन नहीं है कि यह संख्याओं के लिए एक अच्छा एल्गोरिदम होगा> 2048 बिट्स? http://stackoverflow.com/questions/2525172/custom-very-long-int-division-issue – Chris
मुझे यह पेपर भी मिला, क्या यह मेरे लिए शुरू करने के लिए एक अच्छा एल्गोरिदम होगा? http://www.brinch-hansen.net/papers/1994b.pdf – Chris