(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 ser q//base.b, q%base.b(o simplemente divmod(q, base.b)) para evitar errores de punto flotante.