Definamos una secuencia de raíces cuadradas enteras. Primero, a (1) = 1. Luego, a (n) es el entero positivo más pequeño que no se haya visto antes, de modo que
sqrt(a(n) + sqrt(a(n-1) + sqrt(... + sqrt(a(1)))))
es un entero Algunos ejemplos:
a (2) es 3 porque es el número entero más pequeño tal que sqrt(a(2) + sqrt(a(1))) = sqrt(a(2) + 1)
es entero, y 3 no ha ocurrido antes en la secuencia.
a (3) es 2 porque es el número entero más pequeño tal que sqrt(a(3) + sqrt(a(2) + sqrt(a(1)))) = sqrt(a(3) + 2)
es entero, y 2 no ha ocurrido en la secuencia antes.
a (4) es 7 porque sqrt(a(4) + 2)
es entero. No podríamos tener un (4) = 2 porque ya ocurrió 2 en nuestra secuencia.
Escribir un programa o función que dado un parámetro n devuelve una secuencia de números a (1) a a (n).
La secuencia comienza 1,3,2,7,6,13,5, ....
Fuente de esta secuencia es de esta pregunta Math.SE .
Una gráfica de los primeros 1000 elementos en la secuencia:
Respuestas:
Python 2 , 80 bytes
Pruébalo en línea!
fuente
Haskell ,
10387 bytesHorriblemente ineficiente, pero no se basa en la aritmética de coma flotante. Aquí
a(x) = sqrt(f(x)+a(x-1))
hay una secuencia auxiliar, que simplifica el cálculo.Pruébalo en línea!
fuente
Python 2 , 87 bytes
Pruébalo en línea!
-3 gracias al Sr. Xcoder .
-5 gracias a los ovs .
fuente
while n in s or(t+n)**.5%1>0
->while(n in s)+(t+n)**.5%1
MATL ,
3027 bytesPruébalo en línea! O vea una pantalla gráfica (toma un tiempo; se agota el tiempo de espera para entradas que exceden aproximadamente
60
).Explicación
fuente
Mathematica, 104 bytes
Pruébalo en línea!
La secuencia de las raíces cuadradas también es muy interesante ...
y genera un patrón similar
También aquí están las diferencias de la secuencia principal
fuente
Python 2 ,
1171151121029987 bytesPruébalo en línea!
Usé la
t=(t+x)**.5
lógica de la respuesta de Erikfuente
JavaScript (ES7),
89827776 bytesManifestación
Mostrar fragmento de código
Formateado y comentado
fuente
R ,
13810599 bytesPruébalo en línea!
-33 bytes usando el ingenioso
sqrt()%%1
truco de Tfeld en el bucle while-6 bytes usando T en lugar de F
respuesta original, 138 bytes:
Pruébalo en línea!
fuente
Casco , 21 bytes
Pruébalo en línea!
¿Cómo?
fuente