¿Aproximadamente cuánto más rápido es el GCD binario que el algoritmo euclidiano para la aritmética de precisión fija en las computadoras actuales?

No creo que nadie sepa esto, así que sugiero implementar ambos y probarlos en la práctica en una variedad de plataformas.

Debo decir que espero que la diferencia no sea enorme, ya que el módulo entero es muy rápido en el hardware moderno. También depende de las distribuciones de números de su aplicación, ya que algunos números requieren más iteraciones en el mcd de Euclid que otros. Creo que el peor caso para el algoritmo de Euclides es cuando calculas el mcd de dos números consecutivos de Fibonacci; en ese caso, tiene que procesar a través de toda la cadena de Fibonacci, por lo que los números se reducen en aproximadamente la proporción áurea de cada iteración, en lugar de un factor de dos.

Entonces, para esos números, estoy seguro de que cambiar a un mcd binario es útil, mientras que para otras entradas, la sobrecarga del uso del módulo entero podría compensarse con reducciones mayores.

También puede pensar en hacer un algoritmo personalizado, por ejemplo, si sus números nunca son demasiado grandes, podría tener un algoritmo que se base en una tabla de búsqueda que asigne cada número a una lista de sus factores primos. Luego puede hacer coincidir esas listas y multiplicar todos los factores que tienen en común.

More Interesting

¿Cuál es el mejor y el último algoritmo de última generación para encontrar documentos similares?

Actualmente estoy leyendo un libro sobre estructuras de datos y algoritmos. ¿Cuáles son algunos recursos que puedo usar para practicar la implementación?

¿Es necesario pensar en una solución recursiva primero antes de proceder a resolver un problema de DP?

Cómo evitar que el algoritmo de google para 'quiso decir' afecte mi sitio

¿Por qué el tipo de este código JavaScript siempre es una 'Cadena' a pesar de que estoy ingresando un número en el campo de entrada?

¿Los ingenieros de software de Google, Amazon, etc. utilizan estructuras de datos y algoritmos en el desarrollo de aplicaciones en tiempo real?

¿Cuál es la diferencia entre Algorithm y API?

¿Cómo funciona la búsqueda 'YouTube'? ¿Cómo te señala con precisión una canción con solo unas pocas palabras de la letra?

¿Cuáles son algunos lenguajes de programación que me permiten visualizar algoritmos?

¿Está bien mi implementación de Búsqueda ternaria?

¿Cuál es la diferencia entre los siguientes dos fragmentos de código?

¿Hay algoritmos con complejidad [math] \ mathcal {O} [/ math] [math] (\ sqrt {\ log (n)}) [/ math]?

Se da una matriz (n). La matriz puede atravesarse por saltos de tamaño <= k. Si en el índice i, un salto puede aterrizar en cualquier lugar desde i + 1 hasta i + k index.

Cómo escribir un algoritmo de aprendizaje automático que prediga la edad de alguien

¿Por qué no puedo resolver la subsecuencia creciente más larga simplemente ordenando la secuencia y luego iterando a través de cada elemento asegurándome de que la secuencia siempre esté aumentando?