Considérons une séquence de nombres naturels pour laquelle N apparaît comme une sous-chaîne dans N ^ 2. A018834
Sortez le n
e élément de cette séquence.
Règles
Le programme ne prend que n
comme entrée et sort un seul numéro - N
.
La séquence peut être indexée 0 ou indexée 1.
Sequence: 1 5 6 10 25 50 60 76 100 250 376 500 600 625 760 ...
Squares: 1 25 36 100 625 2500 3600 5776 10000 62500 141376 250000 360000 390625 577600 ...
C'est le code-golf donc le code le plus court gagne.
Réponses:
05AB1E , 6 octets
1 indexé
Essayez-le en ligne!
Explication
la source
µ
commande est juste ... J'aimerais bien l'avoir.Nth
nombre qui remplit une condition spécifique.å
donne vrai, alors nous avons le courantN
en haut de la pile (incrémenter le compteur et incrémenterN
), mais sinon nous continuons (incrémenterN
). Utilisez peut-être autre chose que "N
" puisque c'est le résultat final dans le corps de la question: pPerl 6 ,
3331 octets-2 octets grâce à nwellnhof
Essayez-le en ligne!
Explication:
la source
JavaScript (ES6), 43 octets
Essayez-le en ligne!
Version non récursive, 47 octets
Essayez-le en ligne!
la source
n=23
seulement?MathGolf , 8 octets (fonctionne pour toute entrée en théorie, mais uniquement pour la
n<10
pratique)Essayez-le en ligne!
Alternative (travaux
n<49
en pratique et théorie)La seule différence est qu'au lieu de créer une liste avec des
10^(input)
valeurs, je crée une liste avec des10^6
éléments. Cela prend un certain temps à s'exécuter, vous pouvez donc échanger le premier octet vers n'importe quel autre littéral de 1 octet pour le tester.Explication
La raison pour laquelle cette solution ne gère pas les entrées volumineuses est que j'ai remarqué que la séquence croît moins qu'exponentiellement, mais plus que n'importe quel polynôme. C'est pourquoi j'ai utilisé l'
10**n
opérateur (je voulais utiliser2**n
mais il a échoué pour l'entrée 1). Cela signifie que je crée un tableau extrêmement grand même pour de petites entrées, juste pour en filtrer la grande majorité, puis prendre l'un des premiers éléments. C'est extrêmement inutile, mais je ne pouvais pas trouver d'autre moyen de le faire sans augmenter le nombre d'octets.la source
Lisp commun, 95 octets
Essayez-le en ligne!
la source
Nettoyer , 83 octets
Essayez-le en ligne!
la source
Gelée , 6 octets
1 indexé.
Essayez-le en ligne!
Comment?
Recherche le premier
n
de la séquence comme une liste et on obtient alors la queueN
.Si
0
étaient considérés comme un nombre naturel, nous pourrions utiliser le programme complet indexé 1ẇ²$#Ṫ
pour 5.la source
Japt,
1211 octetsEssayez-le
Essayez-le
la source
Rubis , 45 octets
Essayez-le en ligne!
la source
Java 8,
666563 octets-1 octet grâce à @Shaggy .
-2 octets grâce à @Arnauld .
1 indexé.
Essayez-le en ligne.
Explication:
la source
Clojure , 81 octets
Essayez-le en ligne! (Malheureusement, TIO ne semble pas prendre en charge la bibliothèque de chaînes standard de Clojure)
Si Clojure avait une syntaxe d'importation plus courte, ou avait une
includes?
méthode dans la bibliothèque principale, cela pourrait en fait être quelque peu compétitif.clojure.string/includes?
seul est cependant plus long que certaines réponses ici: /Étant donné que le lien TIO est rompu, voici un test. Le nombre à gauche est l'index (
n
), et le résultat (N
) est à droite:Cela devrait pouvoir prendre en charge n'importe quelle valeur de
n
; à condition que vous soyez prêt à attendre qu'il se termine (la recherche des 50e à 100e entiers dans la séquence a pris environ 15 minutes). Clojure prend en charge l'arithmétique arbitrairement grande, donc une fois que les nombres commencent à devenir énormes, il commence à utiliserBigInt
s.la source
Fusain , 25 octets
Essayez-le en ligne! Le lien est vers la version détaillée du code. 0 indexé. Explication:
Entrée
n
.Commencez
N
à 1. (Ou, cela pourrait commencer à compter0
ce qui rendrait l'entrée 1 indexée.)Répétez jusqu'à ce que nous ayons trouvé des
n
nombres dans la séquence.Incrément
N
.Si
N*N
contientN
, alors ...... décrémenter
n
.Imprimer
N
.Mes tentatives pour jouer au golf plus loin ont été contrecarrées par le charbon de bois a) n'ayant pas de
if..then
sauf à la fin d'un bloc (qui coûte 2 octets) b) n'ayant pas d'Contains
opérateur (convertissant la sortie deFind
ouCount
en booléen que je pourrais soustraire desn
coûts à nouveau 2 octets).la source
Edit (réponse aux commentaires): Python 2, 76 octets
Je voulais essayer une méthode non récursive. (Nouveau au golf, tous les conseils seraient formidables!)
Merci à BMO et à Vedant Kandoi!
la source
print(f(13))
dans le code. De pluswhile 1:
,if c==1:return n
,c==1 can be c<2
`
sont redondants et celui aprèsc<2:
aussi, ensuite vous pouvez mélanger les tabulations et les espaces pour l'indentation (comme illustré ici ): 69 octets Btw. il n'est pas nécessaire de conserver votre ancienne version (elle est dans l'historique des modifications pour ceux qui sont intéressés) et pourquoi ne pas créer un lien vers TIO (ou similaire) / utiliser le modèle à partir de là?Haskell, 60 octets
Essayez-le en ligne!
la source
Python 2 ,
4743 octets-4 octets grâce à Dennis (en ajoutant 1 à l'appel récursif au lieu de revenir
n-1
)Essayez-le en ligne!
Explantion / Ungolfed
Fonction récursive prenant deux argumentsc , n ; n est compté 1 , 2 , 3 … et à chaque fois n dans n2 ça diminue c . La récursivité se termine dès quec = 0 :
la source
APL (Dyalog Extended) ,
3130 octetsEssayez-le en ligne!
0 indexé.
la source
(⍕⍺)⍷⍕
→⍺⍷⍥⍕
Perl 5
-p
, 33 octetsEssayez-le en ligne!
la source
Lua ,
13712379 octets-Merci @Jo King pour 44 octets
Essayez-le en ligne!
la source
false/true
peut être0>1
/0<1
, les crochets ne sont pas nécessaires pourif
s etwhile
s, vous pouvez supprimer la plupart des espaces après les nombres (même les retours à la ligne).Tcl , 82 octets
Essayez-le en ligne!
la source
proc S n {while {[incr j [regexp [incr i] [expr $i**2]]]-$n} {};return $i}
Bien rangé , 24 octets
Essayez-le en ligne!
Renvoie une liste paresseuse qui, lorsqu'elle est appelée comme une fonction, renvoie
n
e élément de la série.Explication
la source