Dado un número entero no negativo n >= 0
, genera para siempre la secuencia de números enteros x_i >= 3
que son palíndromos en n
bases exactamente diferentes b
, donde puede estar la base 2 <= b <= x_i-2
.
Esto es básicamente el inverso de OEIS A126071 , donde se muestran los índices en esa secuencia que tienen el valor n
. Es un poco diferente, porque lo cambié para que ignore las bases b = x_i-1, x_i, x_i+1
, ya que los resultados para esas bases son siempre los mismos (los valores son siempre palíndromos o siempre no). Además, el desplazamiento es diferente.
x_i
está restringido a números >= 3
para que el primer término del resultado para cada uno n
sea A037183 .
Tenga en cuenta que el formato de salida es flexible, pero los números deben estar delimitados de una manera agradable.
Ejemplos:
n seq
0 3 4 6 11 19 47 53 79 103 137 139 149 163 167 ...
1 5 7 8 9 12 13 14 22 23 25 29 35 37 39 41 43 49 ...
2 10 15 16 17 18 20 27 30 31 32 33 34 38 44 ...
3 21 24 26 28 42 45 46 50 51 54 55 56 57 64 66 68 70 ...
4 36 40 48 52 63 65 85 88 90 92 98 121 128 132 136 138 ...
5 60 72 78 84 96 104 105 108 112 114 135 140 156 162 164 ...
10 252 400 420 432 510 546 600 648 784 800 810 816 819 828 858 882 910 912 1040 1056 ...
Entonces n=0
, obtienes la salida de este desafío (comenzando en 3
), porque obtienes números que son palíndromos en n=0
bases.
Porque n=1
, 5
es un palíndromo en la base 2
, y esa es la única base en la 2 <= b <= (5-2)
que es un palíndromo. 7
Es un palíndromo en la base 2
, y esa es la única base en la 2 <= b <= (7-2)
que es un palíndromo. Etc.
Si su idioma no admite salida infinita, puede tomar otro entero z
como entrada y salida de los primeros z
elementos de la secuencia, o todos los elementos menores que z
. El que tu prefieras. Indique cuál utilizó en su respuesta si este es el caso.
fuente
n
bases exactas , no en basesn
o más?n
es el conjunto de enteros>=3
.Respuestas:
Jalea , 18 bytes
Pruébalo en línea! - el intérprete en línea tendrá un tiempo de espera de 60 segundos y luego vaciará su salida (a menos que tenga una copia en caché), sin conexión imprimirá cada uno por turno.
¿Cómo?
Evalúa los números desde
n
arriba, imprimiéndolos si están en la secuencia. Tenga en cuenta que el primer número en cualquier salida será mayor quen
dado que, de lo contrario, el rango deb
no es lo suficientemente grande, por lo que no es necesario iniciar el proceso3
. También tenga en cuenta que el número de palíndromos desde la base 2 hasta x i -2 inclusive es solo dos menos que el número de palíndromos desde la base 1 hasta x .fuente
Mathematica,
8071 bytes¡Gracias a JungHwan Min por guardar 9 bytes!
(
∞
es el carácter de tres bytes U + 221E.) Función pura que toma un entero no negativo como entrada.i~IntegerReverse~Range[2,i-2]
crea una lista de las reversiones del númeroi
en todas las bases desde2
hastai-2
; luegoLength[...~Cases~i]
cuenta cuántas de estas reversiones son iguales dei
nuevo.#!=...||Echo@i
se detiene en silencio si ese recuento no es igual a la entrada, y hace ecoi
si es igual a la entrada. Ese procedimiento está incrustado en un bucle infinito directo.fuente
Echo@i
término no se evalúa cuando el primer argumento esTrue
. ¿Puedo agregar esto a Consejos para jugar golf en Mathematica ?Do[...,{i,3,∞}]
es más corto que(i=2;While[1>0,... ++i ...])
, yCases
funcionaría en lugar dePosition
. -9 bytes:Do[#!=Length[i~IntegerReverse~Range[2,i-2]~Cases~i]||Echo@i,{i,3,∞}]&
Cases
funciona muy bien en lugar dePosition
. Pero probé laDo
construcción, y no funciona para mí, pero no tengo idea de por qué no. Por alguna razón, no conecta losi
valores, obtengo errores como"Range specification in Range[2,-2+i] does not have appropriate bounds."
. (E insertando unPrint[i];
verifica quei
no se están asignando valores.) ¿Alguna idea?,
y{
(probablemente algo relacionado con el sistema de SE). Eso rompe el código porque los caracteres se consideran una variable. Espero que esto no lo tenga:Do[#!=Length[i~IntegerReverse~Range[2,i-2]~Cases~i]||Echo@i,{i,3,∞}]&
EDITAR: Todavía lo tiene. Aquí hay un enlace pastebinPyth,
211918 bytesEsto debería funcionar en teoría. Funciona correctamente si sustituyo el bucle infinito por uno finito (por ejemplo,
JQFbr3 50*`bqJlf_IjbTr2tb
de 3 a 50, intente aquí ), pero el intérprete de Pyth no sabe cuándo o cómo imprimir literalmente una salida infinita.Explicación:
fuente
Perl 6 , 90 bytes
Intentalo
fuente
Utilidades Bash + Unix,
134132 bytesPruébalo en línea!
La entrada se pasa como argumento. La salida está en stdout.
Si ejecuta esto normalmente, mostrará un número a la vez en la secuencia infinita.
Si intenta esto en TIO, mostrará la mayor cantidad de salida que ha generado cuando se agota el tiempo de espera en 60 segundos.
fuente
Python 2, 132 bytes
Pruébalo en línea
El programa TIO tiene un pie de página agregado para que no tenga que esperar 1 minuto para que el programa agote el tiempo de espera antes de ver la salida.
fuente