Escriba un programa o función que tome N y S y genere el número de palíndromos de longitud S que puede construir utilizando un alfabeto de tamaño N de manera que cualquier prefijo de tamaño entre 2 y S-1 no sea un palíndromo.
Por ejemplo, si N fuera 2 y S fuera 5
Los palíndromos válidos serían
01110
10001
Y así la respuesta sería 2
Este es un código de golf, por lo que las respuestas se puntuarán en bytes en función de su longitud, siendo mejores menos bytes.
code-golf
string
combinatorics
usuario77149
fuente
fuente

01111111111111111111111111..0es un palíndromo tal que cualquier prefijo no es un palíndromoRespuestas:
Jalea , 10 bytes
Se trata de una búsqueda de fuerza bruta sobre toda n s posibles cadenas.
Mis resultados difieren de las otras respuestas ', pero las soluciones que cuenta mi respuesta parecen ser válidas.
Pruébalo en línea!
fuente
Pyth , 16 bytes
Pruébalo aquí!
Mi respuesta está de acuerdo con los resultados de Dennis , en lugar de las respuestas de Haskell y Python.
Cómo funciona
lf! tit_IM._T2 ^ SE | Programa completo SE | Tome la segunda entrada (E), haga un rango entero de 1 ... E. ^ | Y tome el Qth Cartesian Power, donde Q es la primera entrada. f | Filtre por una condición que use T como variable. ._T | Toma todos los prefijos de T ... _IM | Y para cada prefijo, verifique si son invariantes sobre la inversión. t | Toma la cola (quita el primer elemento). i 2 | Convierte de base 2 a entero. ! t | Decremento, negar. Tenga en cuenta que entre los enteros, solo 0 es falso. l | Tome la longitud de la lista filtrada.fuente
Casco , 19 bytes
¡Pruébelo en línea o vea las soluciones!
Explicación
fuente
Limpio , 129 bytes
Pruébalo en línea!
fuente