Défi:
Étant donné un entier d'index n
, sortez le n
'e élément de cette séquence, ou sortez la séquence jusqu'à et y compris l'index n
:
25,25,7,28,29,20,21,22,23,14,35,26,7,28,29,20,16,29,12,15,28,21,14,17,30,13,16,29,12,15,28,21,10,6,12,18,15,11,7,13,19,17,13,9,15,21,18,14,10,16,22,19,15,11,17,23,20,16,12,18,24,21,17,13,19,25,23,19,15,21,27,24,20,16,22,28,25,21,17,23,29,16,13,9,15,21,18,14,10,16,22,20,16,12,18,24,21,17,13,19
Comment fonctionne cette séquence?
REMARQUE: dans cette explication, l'index n
est indexé sur 1.
Mettez les chiffres 1
par x
deux lignes de longueur n*6 - 1
, où x
dépend de l'itération courante et la longueur des numéros utilisés, et puis on additionne les chiffres des n
« e / droit la plupart des anneaux olympiques de ces deux lignes.
Le premier nombre de la séquence est calculé comme suit:
The length of the lines are 5 (because 1*6 - 1 = 5):
12345
67891(0)
Then leave the digits in an Olympic Rings pattern:
1 3 5
7 9
And sum them:
1+3+5+7+9 = 25
Il en n=1
résulte donc 25
.
Le deuxième nombre de la séquence est calculé comme suit:
The length of the lines are 11 (because 2*6 - 1 = 11):
12345678910
11121314151(6)
Then leave the digits in the second/right-most Olympic Rings pattern:
7 9 0
4 5
And sum them:
7+9+0+4+5 = 25
Il en n=2
résulte donc 25
.
Le troisième nombre de la séquence est calculé comme suit:
The length of the lines are 17 (because 3*6 - 1 = 17):
12345678910111213
14151617181920212(2)
Then leave the digits in the third/right-most Olympic Rings pattern:
1 2 3
0 1
And sum them:
1+2+3+0+1 = 7
Il en n=3
résulte donc 7
.
etc.
Règles du défi:
- Lorsque vous sortez le
n
'e élément de la séquence, vous êtes autorisé à prendre l'entrée comme indexée 0 au lieu de indexée 1, mais gardez à l'esprit que les calculs den*6 - 1
deviendront alors(n+1)*6 - 1
ou(n+1)*5 + n
. - Les nombres uniques de plus d'un chiffre peuvent être divisés à la fin de la première ligne lorsque nous avons atteint la longueur
n*5 + n-1
, il est donc possible qu'un nombre de 2 chiffres ou plus soit partiellement la dernière partie de la ligne 1 et partiellement le partie avant de la ligne 2.
Règles générales:
- C'est le code-golf , donc la réponse la plus courte en octets l'emporte.
Ne laissez pas les langues de golf de code vous décourager de publier des réponses avec des langues autres que le golf de code. Essayez de trouver une réponse aussi courte que possible pour «n'importe quel» langage de programmation. - Des règles standard s'appliquent à votre réponse, vous êtes donc autorisé à utiliser STDIN / STDOUT, fonctions / méthode avec les paramètres appropriés et des programmes complets de type retour. Ton appel.
- Les failles par défaut sont interdites.
- Si possible, veuillez ajouter un lien avec un test pour votre code.
- Veuillez également ajouter une explication si nécessaire.
Cas de test:
Voici une boîte à pâte des cas de test 1-1 000 , alors n'hésitez pas à en choisir un.
Quelques cas de test supérieurs supplémentaires:
1010: 24
1011: 24
2500: 19
5000: 23
7500: 8
10000: 8
100000: 25
1*5 + 1-1 = 5
? N'est-ce pas1*5 + 5 - 1 = 9
?n=1
ainsi , ce qui est à son tour .n*5 + n-1
1*5 + 1-1
5 - 0 = 5
n * 5 + n - 1
égal àn * 6 - 1
?Réponses:
Husk , 16 octets
Essayez-le en ligne!
-3 octets grâce à H.PWiz .
Explication (précipitée):
la source
Rétine ,
706862 octetsEssayez-le en ligne!
Explication
Appelons l'entrée n , et nous utiliserons
3
comme exemple.Le
10**
est court pour10*$&*_
lequel remplace l'entrée par une chaîne de 10n soulignés.Maintenant, nous remplaçons chaque trait de soulignement par la longueur de la chaîne jusqu'à et y compris ce trait de soulignement. Il en résulte donc juste le nombre de 1 à 10n tous concaténés ensemble ( 10n est toujours suffisant pour remplir deux lignes de la longueur requise).
Eval! Ceci et l'étape suivante généreront le code source d'un autre programme, qui sera ensuite exécuté sur cette chaîne d'entiers concaténés.
Pour générer ce programme, cette étape remplace d'abord les entiers par une chaîne de 6n soulignés (
$+
fait référence à l'entrée d'origine du programme).Remplacez ensuite ces traits de soulignement par
L`.{…}
, où…
est 6n-1 (la longueur des lignes que nous regardons). Nous avons donc généré une expression régulière, dont le quantificateur dépend de l'entrée d'origine.Lorsque ce programme est évalué, il correspond à des morceaux de longueur 6n-1 , dont il y en aura au moins deux. Pour notre exemple d'entrée
3
, nous nous retrouvons avec:Il nous suffit maintenant d'extraire les chiffres pertinents.
Tout d'abord, sur chaque ligne (
%
), nous supprimons tous, sauf les cinq derniers chiffres (,-6
). Cela nous donneFinalement:
Nous développons tous les deux chiffres (
2
) dans les dix premiers (9
, il s'agit d'un 0) en unaire. Ce sont ceux qui occupent les positions des anneaux olympiques.Et nous comptons le nombre de soulignements résultants, pour les additionner et convertir le résultat en décimal.
la source
1
.-7
Python 2 ,
9490 octetsEssayez-le en ligne!
la source
Japt ,
333230292827 octetsOh, ce n'est pas joli!
Sorties du n ième terme, 1-indexé.
Essayez-le
Explication
la source
Python 2 , 97 octets
Essayez-le en ligne!
la source
Python 3,
129123 octetsEssayez-le en ligne
C'est à peu près tout foiré, mais ça marche.
la source
05AB1E ,
222120 octetsEssayez-le en ligne!
Explication
Approche alternative de 21 octets
la source
Gelée , 19 octets
Essayez-le en ligne!
la source
J ,
61, 5857 octetsEssayez-le en ligne!
la source
Rubis ,
65 6356 octetsEssayez-le en ligne!
la source
Propre ,
138101 octetsEssayez-le en ligne!
la source
Java 8,
138111109 109 octetsJe devrai bien sûr répondre à mon propre défi. :)
J'ai perdu mon code initial que j'ai utilisé pour créer les résultats du test dans la description du défi, alors je viens de recommencer.
Explication:
Essayez-le en ligne.
la source