sfondo
In questa sfida, una rappresentazione baseb
di un numero intero n
è un'espressione di n
una somma di poteri di b
, in cui ogni termine si verifica nella maggior parte dei b-1
casi. Ad esempio, la 4
rappresentazione base di 2015
è
4^5 + 3*4^4 + 3*4^3 + 4^2 + 3*4 + 3
Ora, la rappresentazione ereditaria di base b
di n
viene ottenuta convertendo gli esponenti nelle loro b
rappresentazioni di base , quindi convertendo i loro esponenti e così via ricorsivamente. Quindi la 4
rappresentazione ereditaria di base di 2015
è
4^(4 + 1) + 3*4^4 + 3*4^3 + 4^2 + 3*4 + 3
Come esempio più complesso, la 3
rappresentazione ereditaria di base di
7981676788374679859068493351144698070458
è
2*3^(3^(3 + 1) + 2) + 3 + 1
Il cambiamento di base ereditario di n
da b
ac
, indicato H(b, c, n)
, è il numero ottenuto prendendo la b
rappresentazione di base ereditaria di n
, sostituendo ogni b
da c
e valutando l'espressione risultante. Ad esempio, il valore di
H(3, 2, 7981676788374679859068493351144698070458)
è
2*2^(2^(2 + 1) + 2) + 2 + 1 = 2051
La sfida
Si sono dati come input tre interi b
, c
, n
, per il quale si può assumere n >= 0
e b, c > 1
. Il tuo output è H(b, c, n)
. Vince il conteggio dei byte più breve e non sono consentite scappatoie standard. È possibile scrivere una funzione o un programma completo. Devi essere in grado di gestire input e output arbitrariamente grandi (bignum).
Casi test
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
Fatto divertente
Per qualsiasi numero intero n
, la sequenza ottenuta da
n1 = n
n2 = H(2, 3, n1) - 1
n3 = H(3, 4, n2) - 1
n4 = H(4, 5, n3) - 1
....
alla fine raggiunge 0
. Questo è noto come teorema di Goodstein .
D(GHY=Z0)R&Y+*%YG^H(GHZ)(GH/YGhZ
. Sentiti libero di aggiungerlo se vuoi (vado ai suggerimenti per giocare a golf in Pyth: D)