¿Cuál es el algoritmo más genial (programación competitiva) que hayas encontrado?

El algoritmo más genial que he encontrado es, sin duda, el algoritmo GCD de Euclides

Soy un chico de Java principalmente así que aquí está el código

clase pública Cool
{
public static int Recursion (int a, int b)
{
si (b == 0)
devolver a;
más
Recursión de retorno (b, a% b);
}
}

Quiero decir que hay menos código. Y es muy útil. Sin embargo, utilizando el operador ternario, puede reducir todo el código a una sola línea

Y la lógica es brillante, para aquellos interesados ​​en la lógica, consulte a continuación

En matemáticas, el algoritmo euclidiano , o el algoritmo de Euclides , es un método eficiente para calcular el máximo divisor común (MCD) de dos números, el número más grande que los divide a ambos sin dejar un resto. Lleva el nombre del antiguo matemático griego Euclides, quien lo describió por primera vez en Elementos de Euclides (c. 300 a. C.). Es un ejemplo de un algoritmo , un procedimiento paso a paso para realizar un cálculo de acuerdo con reglas bien definidas, y es uno de los algoritmos más antiguos de uso común. Se puede usar para reducir las fracciones a su forma más simple, y es parte de muchos otros cálculos numéricos teóricos y criptográficos.

El algoritmo euclidiano se basa en el principio de que el máximo común divisor de dos números no cambia si el número mayor se reemplaza por su diferencia con el número menor. Por ejemplo, 21 es el MCD de 252 y 105 (252 = 21 × 12 y 105 = 21 × 5), y el mismo número 21 es también el MCD de 105 y 147 = 252 – 105. Dado que este reemplazo reduce el mayor de los dos números, al repetir este proceso, se obtienen pares de números sucesivamente más pequeños hasta que uno de los dos números llega a cero. Cuando eso ocurre, el otro número (el que no es cero) es el MCD de los dos números originales. Al invertir los pasos, el MCD se puede expresar como una suma de los dos números originales, cada uno multiplicado por un entero positivo o negativo, por ejemplo, 21 = 5 × 105 + (−2) × 252. El hecho de que el MCD siempre puede ser expresada de esta manera se conoce como la identidad de Bézout.

Cortesía, amigos de wikipedia.

Otro algoritmo alucinante en mi opinión, sin duda, sería el Tamiz de Eratóstenes para encontrar números primos en un rango dado.

Para obtener más información al respecto, puede consultar https: //themissingdifferential.w…

Es divertido e interesante.

Buena suerte 🙂

More Interesting

¿Cómo resuelvo los problemas de codechef y topcoder?

Dado un número N y un flujo continuo de enteros de entrada, ¿podría encontrar dos números en el flujo cuya suma fuera el primer número N?

¿Hay alguna diferencia entre los algoritmos estocásticos y los probabilísticos?

¿El problema de las reinas N tiene al menos una solución por cada N> 3?

¿Cuál ha sido el desarrollo reciente en algoritmos de búsqueda en tiempo real?

¿Es necesario codificar todos los datos en estructuras como pilas en C ++, o es un conocimiento práctico suficiente para aclarar entrevistas?

¿Por qué el método de ordenación Javascript organiza los números de una matriz en orden ascendente con [código] (a - b) [/ código] y descendente con [código] (b - a) [/ código]?

Cómo aprender algoritmos y estructuras de datos como estudiante de secundaria

¿Obtuviste un trabajo de ingeniería de software al aprender algoritmos a través de MOOC?

¿Cuál es la mejor manera de depurar un algoritmo recursivo?

Dada una cuadrícula N-por-M llena de números positivos, ¿cuál es el mejor programa para encontrar la ruta de arriba a la izquierda a la derecha que minimiza la suma de todos los números?

¿Qué es el algoritmo de Quora y cómo funciona?

Después de aprender Python (junto con algoritmos y estructuras de datos), ¿sería beneficioso para mí aprender Selenium o debería seguir alguna otra búsqueda? Ya trabajo con Node.js, ¿hay algo más además de Django?

¿Cómo comparamos la complejidad del espacio y el tiempo como O (n ^ 2) tiempo versus O (n) espacio y O (n) tiempo?

Cómo demostrar que el camino más corto posible entre dos puntos es una línea recta