Estoy tratando de implementar la división larga para bignums. No puedo usar una biblioteca como GMP desafortunadamente debido a las limitaciones de la programación integrada. Además, quiero el ejercicio intelectual de aprender cómo implementarlo. Hasta ahora, he agregado y multiplicado utilizando matrices de bytes de cualquier longitud (por lo que cada byte es como un dígito base-256).Cómo implementar división larga para números enormes (bignums)
Estoy tratando de comenzar a implementar la división/módulo y quiero saber por dónde empezar? He encontrado muchos códigos altamente optimizados (también ilegibles) en la red, lo que no me ayuda, y he encontrado muchos libros técnicos matemáticos altamente técnicos de los que no puedo cerrar la brecha entre la teoría y la implementación. .
Si alguien pudiera recomendar un algoritmo popular, y apuntarme a una explicación fácil de entender que se incline hacia la implmenentación, sería fantástico.
-edit: Necesito algoritmos que funcionan cuando el dividendo es ~ 4000bits, y el divisor es de ~ 2000bits
-Editar: ¿Funcionará este algoritmo con la base-256? http://courses.cs.vt.edu/~cs1104/BuildingBlocks/divide.030.html
-edit: ¿Este es el algoritmo (división newton) que realmente debería estar usando? http://en.wikipedia.org/wiki/Division_(digital)#Newton.E2.80.93Raphson_division
Encontré esto, pero no estoy seguro de que sea un buen algoritmo para números> 2048 bits? http://stackoverflow.com/questions/2525172/custom-very-long-int-division-issue – Chris
También encontré este documento, ¿sería un buen algoritmo para empezar? http://www.brinch-hansen.net/papers/1994b.pdf – Chris