La secuencia Sixers es un nombre que se puede asignar a la secuencia A087409 . Aprendí sobre esta secuencia en un video de Numberphile , y se puede construir de la siguiente manera:
Primero, tome los múltiplos de 6, escritos en la base 10:
6, 12, 18, 24, 30, 36, ...
A continuación, concatene los números en una secuencia de dígitos:
61218243036...
Finalmente, reagrupe la secuencia en pares e interprete cada uno como un entero:
61, 21, 82, 43, 3, ...
A medida que agrupamos los números en pares, el número máximo en la secuencia será 99, y resulta que todos los enteros no negativos menores que 100 están representados en la secuencia. Este desafío es encontrar el índice de la primera instancia de un número en la secuencia Sixers.
Entrada
Un entero en el rango [0-99]
. No es necesario que tenga en cuenta los números que están fuera de este rango, y su solución puede tener algún comportamiento si se proporciona dicha entrada.
Salida
El índice de la primera aparición del número de entrada en la secuencia Sixers. Esto puede ser 0 o 1 indexado; diga cuál está utilizando en su respuesta.
Reglas
- El procedimiento para generar la secuencia anotada en la introducción es solo para fines ilustrativos, puede usar cualquier método que desee siempre que los resultados sean los mismos.
- Puede enviar programas o funciones completos.
- Se permiten todos los métodos razonables de entrada y salida.
- Las lagunas estándar no están permitidas.
- Se recomiendan enlaces para probar su código en línea.
- Este es el código de golf , por lo que gana la respuesta más corta en cada idioma.
Casos de prueba
Aquí hay una lista de todas las entradas y salidas, en el formato 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
es suficiente para generar todos los valores posibles00
01
02
Respuestas:
JavaScript (ES6),
71 6555 bytesLa salida está indexada en 0.
Pruébalo en línea!
¿Cómo?
Usando una función recursiva, 'consumimos' los primeros 2 caracteres de la cadena de múltiplos concatenados de6 , o agregamos nuevos caracteres si tenemos menos de 2 de ellos.
Ejemplo paran=3 :
Comentado
fuente
Python 2 ,
9392858381686559 bytesPruébalo en línea!
fuente
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)
(0 indexado).Perl 6 , 31 bytes
Pruébalo en línea!
Utiliza la secuencia indexada 1.
Explicación:
fuente
Haskell ,
82 ... 65 5854 bytesPruébalo en línea!
fuente
05AB1E , 9 bytes
0 indexado. Acepta un solo entero o una lista de enteros como entrada.
Pruébelo en línea o verifique todos los casos de prueba .
Explicación:
fuente
100
,"100"
y100.0
son los mismos para la mayoría de las funciones como verificaciones iguales y tal. Todavía hay funciones de conversión a int y conversión a cadena en 05AB1E para algunas funcionalidades, como la ordenación (clasificación numérica frente a lexicográfica), o para eliminar dígitos decimales después de la coma de un flotante cuando se convierte a int, pero no se usan con tanta frecuencia .Carbón de leña , 12 bytes
Pruébalo en línea! El enlace es a la versión detallada del código. 0 indexado. Explicación:
fuente
J ,
2926 bytes-3 bytes gracias a FrownyFrog!
Pruébalo en línea!
Basado en 0
fuente
i.~_2(".\;)6<@":@*1+i.@325
APL (Dyalog Unicode) , 26 bytes
Pruébalo en línea! - Pruebas para todas las entradas válidas.
Cómo:
fuente
⍴
, pero me da miedo ... APL⍴
es la remodelación de APL. Entonces, si desea remodelar un vector aplanado, solo tiene que hacerlo<new shape vector> ⍴ <vector to reshape>
Python 3 ,
8781 Bytes:entrada entera, salida indexada 0.
Pruébalo en línea!
-6 bytes, gracias a @TFeld.
fuente
Wolfram Language (Mathematica) , 74 bytes
Pruébalo en línea!
2 bytes guardados de @Expired Data
fuente
Brachylog , 14 bytes
Pruébalo en línea!
Demasiado lento para casos de prueba con salidas más grandes.
fuente
R ,
7562 bytes-13 bytes gracias a Giuseppe.
Pruébalo en línea!
fuente
MathGolf , 10 bytes
Pruébalo en línea!
Básicamente lo mismo que la respuesta 05AB1E, pero pierdo un byte al tener que convertir el número concatenado a una cadena explícitamente.
Explicación
fuente
APL + WIN, 37 bytes
Solicita entrada de entero. 1 indexado.
Pruébalo en línea! Coutesy of Dyalog Classic
fuente
C # (compilador interactivo de Visual C #) ,
123 bytes115 bytesPruébalo en línea!
fuente
f(61)
debería regresar0
(parece que su solución está indexada a 0)K (oK) , 22 bytes
Solución:
Pruébalo en línea!
Explicación:
0 indexado.
fuente
Jalea , 10 bytes
Pruébalo en línea!
El enlace TIO proporciona todos los valores de 0 a 99.
Explicación
fuente
Java 10,
119104102 bytesPuerto de la respuesta Python 2 de @TFeld .
-2 bytes gracias a @Imus .
1 indexado.
Pruébalo en línea.
Explicación:
Versión original de
119117 bytes:0 indexado.
Pruébalo en línea.
Explicación:
fuente
CJam , 17 bytes
Pruébalo en línea!
Basado en 0.
Explicación
fuente
""
, pero no hay builtins para0
o a""
veces es útil para los bucles, porque esos son a menudo los valores iniciales deseados. En cuanto a no tener100
o1000
, sí, estoy de acuerdo en que serían más útiles que decir18
o19
:~
yi
de él. :(Japt , 12 bytes
0 indexado.
Pruébalo o prueba todas las entradas
fuente
Rojo ,
9794 bytesPruébalo en línea!
fuente
Stax , 11 bytes
Ejecutar y depurarlo
La entrada es un entero. La salida está indexada en 0.
fuente
Perl 5
-MList::Util=any -ap
, 50 bytesPruébalo en línea!
Salida basada en 1
fuente
Retina ,
8377 bytesRealmente estoy fuera de práctica en programación complicada en Retina, pero estoy satisfecho con la duración en la que logré hacerlo.
Emite el resultado indexado a 0.
Pruébalo en línea
Explicación
fuente
Swift 5 / Xcode 10.2.1 ,
140134133 bytesPruébalo en línea!
fuente
Retina 0.8.2 , 36 bytes
Pruébalo en línea! El enlace incluye un conjunto de pruebas. 1 indexado. Explicación:
Prefijo 2406
_
s a la entrada.Reemplazar cada 6
_
s con el número de_
s anteriores . Esto genera la secuencia0
,6
,12
...2400
, pero concatena automáticamente los números.Omita el 0 inicial y encuentre el primer par de dígitos que coincidan con los dos últimos dígitos, es decir, la entrada con relleno de cero (porque la cadena termina en
0
; de hecho, el conjunto de pruebas utiliza el hecho de que termina en00
).Imprime el número de pares de dígitos hasta e incluyendo la coincidencia.
La Retina 1 guarda un par de bytes porque su operador de repetición de cadena es un byte más corto y ya está predeterminado
_
como su operando derecho, de modo que la segunda línea de código se vuelve justa2406*
. Otra característica de Retina 1 es el>
modificador que genera la sustitución en el contexto del separador después del partido, que en el caso de$.>`
que incluya la duración del partido en el resultado. Aunque esto cuesta un byte, lo guardamos inmediatamente ya que no necesitamos igualar0
. (Las repeticiones también deben reducirse en 6.) La retina 1 también puede hacer aritmética básica en una sustitución. Esto significa que no tenemos que recurrir a trucos para tomar múltiplos de 6, sino que solo generamos los números1..400
y multiplicar por 6 en la sustitución. Sorprendentemente, esto tampoco afecta el recuento general de bytes, ya que el resultado final se ve así:fuente
Golpetazo , 80 bytes
1 indexado.
Pruébalo en línea!
fuente
C # (compilador interactivo de Visual C #) , 88 bytes
Pruébalo en línea!
Otro puerto de Java y Python. respuestas de .
Mi respuesta original a continuación:
C # (compilador interactivo de Visual C #) , 102 bytes
Pruébalo en línea!
Ambas soluciones usan indexación basada en 1.
fuente
Ruby , 46 bytes
Pruébalo en línea!
fuente
Clojure, 102 bytes
¡Hasta la vista! :(
fuente