Son los enteros del 1 al 35 ordenados de forma que dos consecutivos en la serie suman un cuadrado perfecto. Los he obtenido así:
library(adagio)
foo <- function(n){
desde <- 1:n
hasta <- 1:n
todos <- expand.grid(desde, hasta)
todos <- todos[todos$Var1 < todos$Var2,]
todos$sqrt <- sqrt(todos$Var1 + todos$Var2)
todos <- todos[todos$sqrt == round(todos$sqrt),]
todos$sqrt <- NULL
vertices <- as.vector(t(todos))
hamiltonian(vertices)
}
foo(35)Notas:
- Esta entrada está inspirada en algo que he visto en Twitter (pero cuya referencia he olvidado guardar).
- Puedes probar con otros números, aunque no siempre existe un ciclo hamiltoniano.