Puede observar que la primera fila contiene todos los números triangulares, que tienen la forma n (n + 1) / 2 donde n es un número entero (y es el número de columna). También puede observar que todos los números entre dos números triangulares están en diagonal y terminan con el mayor de los dos números triangulares.
Entonces, lo que debe hacer primero es averiguar qué dos números triangulares en la primera fila están más cerca de 20096. Dado que n (n + 1) / 2 está cerca de (n ^ 2) / 2 y 20096 * 2 está cerca de 40,000, mi primera suposición sería calcular el número triangular para n = 200 y luego moverlo hacia la izquierda o hacia la derecha según sea necesario. Para n = 200, n (n + 1) / 2 = 20,100 y para n = 199, n (n + 1) / 2 = 19,900, por lo que resulta que n = 200 es la diagonal exacta que desea.
La diagonal que termina en la fila 1, columna 200, contiene los números del 19,901 al 20,100, por lo que su número 20,096 es cuatro filas a la izquierda y cuatro columnas hacia abajo desde allí.
- ¿Es posible predecir los códigos de verificación para sitios como Facebook y Gmail usando Machine Learning?
- Dado N monedas para dos jugadores que juegan un juego. Cada jugador puede elegir 1 o 2 monedas en un turno. El jugador que recoge las últimas monedas gana. Si juegan de manera óptima, ¿qué jugador ganará el juego?
- ¿Cuál es la forma más eficiente de representar un gráfico con millones de nodos?
- ¿Sigue siendo relevante el modelado de objetos, o se ha reemplazado hoy solo con datos y algoritmos?
- ¿Qué algoritmo de aprendizaje automático es mejor para agrupar pequeños cuerpos de texto por tema / categoría?