(Esto puede ser bastante clásico, pero esta es mi primera publicación aquí, así que todavía no estoy listo para las cosas elegantes)
La secuencia de Goodstein se define para un número de entrada de la siguiente manera:
Elija un número inicial n , deje b = 2 y repita:
- de escritura n en la base de heriditary b notación
- sustituya todos los ( b ) sa ( b +1) s en ny reste 1
- generar la nueva evaluación decimal de n
- incremento b
La notación de base hereditaria es una descomposición de un número donde la base es el número más grande que aparece. Ejemplos:
83en HB3:3^(3+1)+2226en HB2:2^(2^(2+1))+2^(2+1)+2
Las secuencias de Goodstein siempre terminan en 0 , pero primero tienden a crecer bastante rápido, por lo que no se le pide que muestre la secuencia completa.
Tarea:
Dado un número de entrada en cualquier formato razonable, su trabajo es generar la secuencia de Goodstein para este número al menos hasta que llegue a 10 ^ 25 o 0
Ejemplos:
Input: 3
Output: 3, 3, 3, 2, 1, 0
Input: 13
Output: 13, 108, 1279, 16092, 280711, 5765998, 134219479, 3486786855, 100000003325, 3138428381103, 106993205384715, 3937376385706415, 155568095557821073, 6568408355712901455, 295147905179352838943, 14063084452067725006646, 708235345355337676376131, 37589973457545958193377292
Input: 38
Output: 38, 22876792454990
Detalles:
- El número de entrada puede ser una matriz, una cadena, un entero, siempre que esté en base decimal
- La salida sigue la misma regla
- La separación de los términos en la salida puede ser espacios, líneas nuevas o cualquier separación razonable
- Tan pronto como la secuencia sea mayor de 10 ^ 25, su programa puede salir normalmente, generar un error / excepción o continuar (sin restricción)
- Este es el código de golf , por lo que gana la respuesta más corta (en bytes)
- Por supuesto, las lagunas estándar están prohibidas
- Ejemplo de trabajo de Python sin golfista aquí

int(q/base.b), q%base.bdebe serq//base.b, q%base.b(o simplementedivmod(q, base.b)) para evitar errores de punto flotante.Respuestas:
Pyth ,
2826 bytesLa nueva línea final es significativa.
Pruébalo en línea! (Este enlace incluye un extra que
Qno necesita la versión actual de Pyth).Cómo funciona
Es importante que
yse redefina en cada iteración de bucle para evitar la memorización de los cambios en la variable globalJ.fuente
Haskell , 77 bytes
(&2)es una función anónima que tomaIntegery devuelve una lista (potencialmente muy larga) deIntegers, use as(&2) 13.Pruébalo en línea! (corta a
10^25)Cómo funciona
(&2)comienza la secuencia con base2.n&bcalcula la subsecuencia comenzando con el númerony la baseb.n<0, que generalmente sucede el paso siguienten==0.na la lista devuelta recursivamente por la expresión(0?n-1)&(b+1).?es un operador de función local.0?nda el resultado de convertirna base hereditariab, luego incrementa la base en todas partes.eseguimiento del exponente actual.e?nConvierte el númeron*b^e.0cuandon==0.npor la baseb.(e+1)?div n bmaneja la recursividad para el cociente y el siguiente exponente más alto.mod n b*(b+1)^0?emaneja el resto (que es el dígito correspondiente al exponente actuale), el incremento de base y la conversión hereditaria del exponente actual con0?e.fuente