fundo
Nesse desafio, uma representação de baseb
de um número inteiro n
é uma expressão de n
uma soma de potências de b
, onde cada termo ocorre na maioria das b-1
vezes. Por exemplo, a 4
representação base de 2015
é
4^5 + 3*4^4 + 3*4^3 + 4^2 + 3*4 + 3
Agora, a representação de base hereditáriab
de n
é obtida convertendo os expoentes em suas b
representações de base , depois convertendo seus expoentes e assim por diante recursivamente. Assim, a 4
representação hereditária de base 2015
é
4^(4 + 1) + 3*4^4 + 3*4^3 + 4^2 + 3*4 + 3
Como um exemplo mais complexo, a 3
representação hereditária de base de
7981676788374679859068493351144698070458
é
2*3^(3^(3 + 1) + 2) + 3 + 1
A mudança de base hereditária n
de b
parac
, denotada H(b, c, n)
, é o número obtido pela b
representação- base hereditária de n
, substituindo todos os b
por c
e avaliando a expressão resultante. Por exemplo, o valor de
H(3, 2, 7981676788374679859068493351144698070458)
é
2*2^(2^(2 + 1) + 2) + 2 + 1 = 2051
O desafio
Você é dado como entrada três inteiros b
, c
, n
, para o qual você pode assumir n >= 0
e b, c > 1
. Sua saída é H(b, c, n)
. A menor contagem de bytes vence e as brechas padrão não são permitidas. Você pode escrever uma função ou um programa completo. Você deve poder manipular entradas e saídas arbitrariamente grandes (bignums).
Casos de teste
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
Fato engraçado
Para qualquer número inteiro n
, a sequência obtida por
n1 = n
n2 = H(2, 3, n1) - 1
n3 = H(3, 4, n2) - 1
n4 = H(4, 5, n3) - 1
....
finalmente chega 0
. Isso é conhecido como teorema de Goodstein .
D(GHY=Z0)R&Y+*%YG^H(GHZ)(GH/YGhZ
. Sinta-se livre para adicioná-lo se você quiser (eu estou fora de dicas para golfe em pyth: D)