Genere el número den
secuencia de bases en el que se encuentra un palíndromo ( OEIS A126071 ).
Específicamente, la secuencia se define de la siguiente manera: dado un número n
, expresarlo en base a
para a = 1,2, ..., n
y contar cuántas de esas expresiones son palindrómicas. "Palindrómico" se entiende en términos de invertir los a
dígitos de base de la expresión como unidades atómicas (gracias, @Martin Büttner ). Como ejemplo, considere n= 5
:
a=1
: la expresión es11111
: palindrómicaa=2
: la expresión es101
: palindrómicaa=3
: la expresión es12
: no palindrómicaa=4
: la expresión es11
: palindrómicaa=5
: la expresión es10
: no palindrómica
Por lo tanto, el resultado para n=5
es 3
. Tenga en cuenta que OEIS usa bases en 2, ..., n+1
lugar de 1, ..., n
(gracias, @beaker ). Es equivalente, porque las expresiones en base 1
y n+1
siempre son palindrómicas.
Los primeros valores de la secuencia son
1, 1, 2, 2, 3, 2, 3, 3, 3, 4, 2, 3, 3, 3, 4, 4, 4, 4, 2, 4, 5, ...
La entrada es un entero positivo n
. La salida es los primeros n
términos de la secuencia.
El programa debería funcionar teóricamente (con suficiente tiempo y memoria) para n
las limitaciones causadas por su tipo de datos predeterminado en cualquier cálculo interno.
Todas las funciones permitidas. El menor número de bytes gana.
fuente
Respuestas:
Pyth, 13 bytes
La brevedad de esto se debe principalmente al valioso comando
I
"I
nvariante".Si
True
es una salida aceptable para1
,msm_IjdkSdSQ
(12 bytes) funciona.Pruébalo aquí .
fuente
_I#
lugar def_IT
(no estoy 100% seguro de que estuviera disponible, pero parece que lo ha estado ).Jalea, 14 bytes
Pruébalo en línea!
Versión no competitiva
El intérprete de Jelly tenía un error que hacía imposible la conversión a unario. Esto se ha solucionado ahora, por lo que el siguiente código ( 12 bytes ) también realiza la tarea en cuestión.
Pruébalo en línea!
Cómo funciona
fuente
MATL , 19
20bytesUtiliza la versión actual (10.1.0) , que es anterior a este desafío.
Pruébalo en línea !
Explicación
fuente
CJam, 20 bytes
Pruébalo aquí.
fuente
Haskell, 88 bytes
fuente
ES6, 149 bytes
Funciona para bases> 36 también.
fuente
JavaScript (ES6),
10595 bytesExplicación
Toma un número del 1 al 36 (la limitación de la conversión de base en JavaScript) y devuelve una matriz de la secuencia.
Función recursiva que busca palíndromos cuando se pasa una base, de lo contrario, devuelve la secuencia si solo
n
se pasa.Prueba
fuente
Jalea , 8 bytes
Pruébalo en línea!
Posiblemente versión no competitiva:
Pruébalo en línea!
fuente
PHP, 73 + 1 bytes
trabaja para bases
1
a36
. Ejecutar como tubería-nR
o probarlo en línea .fuente
PHP, 92 + 1 bytes:
Funciona para todas las bases. Ejecutar como tubería
-nR
o probarlo en línea .fuente
Python 2, 97 bytes
Mi primera publicación de Python, en realidad mi primer código de Python
probablemente tenga algún potencial de golf.
Pruébalo en línea!
fuente
> <>, 197 + 2 bytes
+2 para la bandera -v
tio.run no parece devolver ningún resultado para n> 1, pero puede verificarlo en https://fishlanguage.com . La entrada va en el cuadro "Pila inicial".
fuente
Japt , 10 bytes
Intentalo
Explicación
fuente
Python 2 , 85 bytes
Pruébalo en línea!
Espera un entero como argumento.
Explicación:
fuente