La séquence Sixers est un nom qui peut être donné à la séquence A087409 . J'ai appris cette séquence dans une vidéo Numberphile , et elle peut être construite comme suit:
Tout d'abord, prenez les multiples de 6, écrits en base 10:
6, 12, 18, 24, 30, 36, ...
Ensuite, concaténez les nombres en un flux de chiffres:
61218243036...
Enfin, regroupez le flux en paires et interprétez chacune comme un entier:
61, 21, 82, 43, 3, ...
Comme nous regroupons les nombres en paires, le nombre maximum dans la séquence sera 99, et il s'avère que tous les entiers non négatifs inférieurs à 100 sont représentés dans la séquence. Ce défi consiste à trouver l'indice de la première instance d'un nombre dans la séquence de Sixers.
Contribution
Un entier dans la plage [0-99]
. Vous n'avez pas besoin de prendre en compte les nombres en dehors de cette plage, et votre solution peut avoir n'importe quel comportement si une telle entrée est donnée.
Production
L'index de la première occurrence du numéro d'entrée dans la séquence Sixers. Cela peut être indexé 0 ou 1; veuillez indiquer ce que vous utilisez dans votre réponse.
Règles
- La procédure pour générer la séquence notée dans l'introduction est uniquement à des fins d'illustration, vous pouvez utiliser n'importe quelle méthode que vous aimez tant que les résultats sont les mêmes.
- Vous pouvez soumettre des programmes ou des fonctions complets.
- Toutes les méthodes d'entrée et de sortie sensées sont autorisées.
- Les failles standard ne sont pas autorisées.
- Des liens pour tester votre code en ligne sont recommandés!
- C'est le golf de code , donc la réponse la plus courte dans chaque langue gagne!
Cas de test
Voici une liste de toutes les entrées et sorties, au format input, 0-indexed output, 1-indexed output
.
0 241 242
1 21 22
2 16 17
3 4 5
4 96 97
5 126 127
6 9 10
7 171 172
8 201 202
9 14 15
10 17 18
11 277 278
12 20 21
13 23 24
14 19 20
15 29 30
16 32 33
17 297 298
18 35 36
19 38 39
20 41 42
21 1 2
22 46 47
23 69 70
24 6 7
25 53 54
26 22 23
27 11 12
28 62 63
29 219 220
30 65 66
31 68 69
32 71 72
33 74 75
34 49 50
35 357 358
36 80 81
37 83 84
38 25 26
39 89 90
40 92 93
41 27 28
42 42 43
43 3 4
44 101 102
45 104 105
46 8 9
47 177 178
48 110 111
49 13 14
50 28 29
51 119 120
52 122 123
53 417 418
54 79 80
55 128 129
56 131 132
57 134 135
58 55 56
59 437 438
60 140 141
61 0 1
62 31 32
63 75 76
64 5 6
65 120 121
66 82 83
67 10 11
68 161 162
69 164 165
70 58 59
71 477 478
72 170 171
73 173 174
74 34 35
75 179 180
76 182 183
77 497 498
78 85 86
79 188 189
80 191 192
81 18 19
82 2 3
83 78 79
84 93 94
85 7 8
86 37 38
87 168 169
88 12 13
89 228 229
90 88 89
91 218 219
92 221 222
93 224 225
94 64 65
95 557 558
96 230 231
97 233 234
98 40 41
99 239 240
6, 2*6, 3*6,..., 325*6
est suffisante pour générer toutes les valeurs possibles00
01
02
Réponses:
JavaScript (ES6),
71 6555 octetsLa sortie est indexée 0.
Essayez-le en ligne!
Comment?
En utilisant une fonction récursive, nous «consommons» les 2 premiers caractères de la chaîne de multiples concaténés de6 , ou ajoutons de nouveaux caractères si nous en avons moins de 2.
Exemple pourn=3 :
Commenté
la source
Python 2 ,
9392858381686559 octetsEssayez-le en ligne!
la source
f=lambda n,s='612',i=3:n-int(s[:2])and f(n,s[2:]+`i*6`,i+1)or i-2
f=lambda n,s='612',i=18:n-int(s[:2])and-~f(n,s[2:]+`i`,i+6)
(indexé 0).Perl 6 , 31 octets
Essayez-le en ligne!
Utilise la séquence indexée 1.
Explication:
la source
Haskell ,
82 ... 65 5854 octetsEssayez-le en ligne!
la source
05AB1E , 9 octets
0 indexé. Accepte soit un seul entier, soit une liste d'entiers en entrée.
Essayez-le en ligne ou vérifiez tous les cas de test .
Explication:
la source
100
,"100"
et100.0
sont les mêmes pour la plupart des fonctions telles que les contrôles et les mêmes tels. Il existe toujours des fonctions de conversion en int et de conversion en chaîne dans 05AB1E pour certaines fonctionnalités, comme le tri (tri numérique vs tri lexicographique), ou pour supprimer les chiffres décimaux après la virgule d'un flottant lors de la conversion en int, mais ils ne sont pas souvent utilisés .Fusain , 12 octets
Essayez-le en ligne! Le lien est vers la version détaillée du code. 0 indexé. Explication:
la source
J ,
2926 octets-3 octets grâce à FrownyFrog!
Essayez-le en ligne!
Basé sur 0
la source
i.~_2(".\;)6<@":@*1+i.@325
APL (Dyalog Unicode) , 26 octets
Essayez-le en ligne! - Tests pour toutes les entrées valides.
Comment:
la source
⍴
mais APL me fait peur ...⍴
c'est la refonte d' APL. Donc, si vous voulez remodeler un vecteur aplati, il vous suffit de le faire<new shape vector> ⍴ <vector to reshape>
Python 3 ,
8781 octets:entrée entière, sortie indexée 0.
Essayez-le en ligne!
-6 octets, grâce à @TFeld.
la source
Wolfram Language (Mathematica) , 74 octets
Essayez-le en ligne!
2 octets enregistrés à partir de @Expired Data
la source
Brachylog , 14 octets
Essayez-le en ligne!
Trop lent pour les cas de test avec des sorties plus importantes.
la source
R ,
7562 octets-13 octets grâce à Giuseppe.
Essayez-le en ligne!
la source
MathGolf , 10 octets
Essayez-le en ligne!
Fondamentalement, la même chose que la réponse 05AB1E, mais je perds un octet en ayant à convertir le nombre concaténé en chaîne explicitement.
Explication
la source
APL + WIN, 37 octets
Invite à saisir un entier. 1 indexé.
Essayez-le en ligne! Coutesy de Dyalog Classic
la source
C # (Visual C # Interactive Compiler) ,
123 octets115 octetsEssayez-le en ligne!
la source
f(61)
devrait revenir0
(il semble que votre solution soit indexée 0)K (oK) , 22 octets
Solution:
Essayez-le en ligne!
Explication:
0 indexé.
la source
Gelée , 10 octets
Essayez-le en ligne!
Le lien TIO donne toutes les valeurs de 0 à 99.
Explication
la source
Java 10,
119104102 octetsPort de la réponse Python 2 de @TFeld .
-2 octets grâce à @Imus .
1 indexé.
Essayez-le en ligne.
Explication:
Version originale de
119117 octets:0 indexé.
Essayez-le en ligne.
Explication:
la source
CJam , 17 octets
Essayez-le en ligne!
Basé sur 0.
Explication
la source
""
, mais aucun élément intégré pour0
ou""
est parfois utile pour les boucles, car ce sont souvent les valeurs de départ souhaitées. Quant à ne pas avoir100
ou1000
, oui, je conviens qu'ils seraient plus utiles que de dire18
ou19
:~
eti
de votre code. :(Japt , 12 octets
0 indexé.
Essayez-le ou testez toutes les entrées
la source
Rouge ,
9794 octetsEssayez-le en ligne!
la source
Stax , 11 octets
Exécuter et déboguer
L'entrée est un entier. La sortie est indexée 0.
la source
Perl 5
-MList::Util=any -ap
, 50 octetsEssayez-le en ligne!
Sortie 1
la source
Rétine ,
8377 octetsJe ne suis vraiment pas habitué à une programmation compliquée dans Retina, mais je suis satisfait de la durée dans laquelle j'ai réussi à le faire.
Génère le résultat indexé 0.
Essayez-le en ligne
Explication
la source
Swift 5 / Xcode 10.2.1 ,
140134133 octetsEssayez-le en ligne!
la source
Retina 0.8.2 , 36 octets
Essayez-le en ligne! Le lien inclut une suite de tests. 1 indexé. Explication:
Préfixez 2406
_
s à l'entrée.Remplacez toutes les 6
_
s par le nombre de_
s précédents . Cela génère la séquence0
,6
,12
...2400
, mais concaténer automatiquement les numéros.Ignorez le 0 de tête et trouvez la première paire de chiffres qui correspond aux deux derniers chiffres, c'est-à-dire l'entrée à remplissage nul (car la chaîne se termine
0
; en fait, la suite de tests utilise le fait qu'elle se termine00
).Affiche le nombre de paires de chiffres jusqu'à et y compris la correspondance.
Retina 1 enregistre quelques octets car son opérateur de répétition de chaîne est un octet plus court et est déjà par défaut
_
son opérande de droite, de sorte que la deuxième ligne de code devient juste2406*
. Une autre caractéristique de Retina 1 est le>
modificateur qui génère la substitution dans le contexte du séparateur après le match, qui dans le cas de$.>`
oblige à inclure la longueur de la correspondance dans le résultat. Bien que cela coûte un octet, nous l'enregistrons immédiatement car nous n'avons plus besoin de faire correspondre le0
tout. (Les répétitions doivent également être réduites de 6.) La rétine 1 peut également effectuer l'arithmétique de base dans une substitution. Cela signifie que nous n'avons pas à recourir à des astuces pour prendre des multiples de 6, au lieu de cela, nous générons simplement les nombres1..400
et multipliez par 6 dans la substitution. Remarquablement, cela n'affecte pas non plus le nombre d'octets global, car le résultat final ressemble à ceci:la source
Bash , 80 octets
1 indexé.
Essayez-le en ligne!
la source
C # (Visual C # Interactive Compiler) , 88 octets
Essayez-le en ligne!
Un autre port des réponses Java et Python .
Ma réponse originale ci-dessous:
C # (Visual C # Interactive Compiler) , 102 octets
Essayez-le en ligne!
Les deux solutions utilisent une indexation basée sur 1.
la source
Rubis , 46 octets
Essayez-le en ligne!
la source
Clojure, 102 octets
Si longtemps! :(
la source