Définissons une séquence de racines carrées entières. D'abord, a (1) = 1. Ensuite, a (n) est le plus petit entier positif jamais vu auparavant de telle sorte que
sqrt(a(n) + sqrt(a(n-1) + sqrt(... + sqrt(a(1)))))
est un entier. Quelques exemples:
a (2) est 3 car c'est le plus petit entier tel que sqrt(a(2) + sqrt(a(1))) = sqrt(a(2) + 1)
entier, et 3 ne s'est pas produit dans la séquence précédente.
a (3) est 2 car c'est le plus petit entier tel que sqrt(a(3) + sqrt(a(2) + sqrt(a(1)))) = sqrt(a(3) + 2)
entier, et 2 ne s'est pas produit dans la séquence précédente.
a (4) vaut 7 car sqrt(a(4) + 2)
est entier. Nous ne pouvions pas avoir un (4) = 2 car 2 se sont déjà produits dans notre séquence.
Écrivez un programme ou une fonction qui, en fonction d'un paramètre n, renvoie une séquence de nombres a (1) à a (n).
La séquence commence 1,3,2,7,6,13,5, ....
Source de cette séquence est de cette question Math.SE .
Un tracé des 1000 premiers éléments de la séquence:
Réponses:
Python 2 , 80 octets
Essayez-le en ligne!
la source
Haskell ,
10387 octetsHorriblement inefficace, mais ne repose pas sur l'arithmétique à virgule flottante. Voici
a(x) = sqrt(f(x)+a(x-1))
une séquence d'aide, qui simplifie le calcul.Essayez-le en ligne!
la source
Python 2 , 87 octets
Essayez-le en ligne!
-3 merci à M. Xcoder .
-5 grâce aux ovs .
la source
while n in s or(t+n)**.5%1>0
->while(n in s)+(t+n)**.5%1
MATL ,
3027 octetsEssayez-le en ligne! Ou voyez un affichage graphique (prend un certain temps; expire pour les entrées dépassant approximativement
60
).Explication
la source
Mathematica, 104 octets
Essayez-le en ligne!
La séquence des racines carrées est également très intéressante ...
et produit un motif similaire
voici aussi les différences de la séquence principale
la source
Python 2 ,
117115112 1121029987 octetsEssayez-le en ligne!
J'ai utilisé la
t=(t+x)**.5
logique de la réponse d' Erikla source
JavaScript (ES7),
89827776 octetsDémo
Afficher l'extrait de code
Formaté et commenté
la source
R ,
13810599 octetsEssayez-le en ligne!
-33 octets utilisant l'
sqrt()%%1
astuce astucieuse de Tfeld dans la boucle while-6 octets utilisant T au lieu de F
réponse originale, 138 octets:
Essayez-le en ligne!
la source
Husk , 21 octets
Essayez-le en ligne!
Comment?
la source