Antecedentes
En este desafío, una representación baseb
de un número entero n
es una expresión de n
como una suma de potencias b
, donde cada término se produce en la mayoría de los b-1
casos. Por ejemplo, la 4
representación base de 2015
es
4^5 + 3*4^4 + 3*4^3 + 4^2 + 3*4 + 3
Ahora, la representación hereditaria de base se obtiene al convertir los exponentes en sus representaciones de base , luego convertir sus exponentes, y así sucesivamente. Por lo tanto, la representación hereditaria de base esb
n
b
4
2015
4^(4 + 1) + 3*4^4 + 3*4^3 + 4^2 + 3*4 + 3
Como un ejemplo más complejo, la 3
representación hereditaria de base de
7981676788374679859068493351144698070458
es
2*3^(3^(3 + 1) + 2) + 3 + 1
El cambio de base hereditaria de n
de b
ac
, denotado H(b, c, n)
, es el número obtenido tomando la b
representación de base hereditaria de n
, reemplazando cada b
por c
y evaluando la expresión resultante. Por ejemplo, el valor de
H(3, 2, 7981676788374679859068493351144698070458)
es
2*2^(2^(2 + 1) + 2) + 2 + 1 = 2051
El reto
Se le da como entrada tres números enteros b
, c
, n
, para los que puede asumir n >= 0
y b, c > 1
. Tu salida es H(b, c, n)
. El conteo de bytes más corto gana, y las lagunas estándar no se permiten. Puede escribir una función o un programa completo. Debe poder manejar entradas y salidas arbitrariamente grandes (bignums).
Casos de prueba
4 2 3 -> 3
2 4 3 -> 5
2 4 10 -> 1028
4 4 40000 -> 40000
4 5 40000 -> 906375
5 4 40000 -> 3584
3 2 7981676788374679859068493351144698070458 -> 56761
2 3 2051 -> 35917545547686059365808220080151141317047
Hecho de la diversión
Para cualquier número entero n
, la secuencia obtenida por
n1 = n
n2 = H(2, 3, n1) - 1
n3 = H(3, 4, n2) - 1
n4 = H(4, 5, n3) - 1
....
finalmente llega 0
. Esto se conoce como teorema de Goodstein .
D(GHY=Z0)R&Y+*%YG^H(GHZ)(GH/YGhZ
. Siéntase libre de agregarlo si lo desea (estoy fuera de consejos para jugar al golf en pyth: D)