Contexte
Dans ce défi, une représentation de baseb d'un entier nest une expression de ncomme une somme de puissances de b, où chaque terme se produit le plus b-1souvent. Par exemple, la 4représentation de base de 2015est
4^5 + 3*4^4 + 3*4^3 + 4^2 + 3*4 + 3
Maintenant, la représentation héréditaire de base bde nest obtenue en convertissant les exposants en leurs breprésentations de base , puis en convertissant leurs exposants, et ainsi de suite récursivement. Ainsi, la 4représentation héréditaire de la base 2015est
4^(4 + 1) + 3*4^4 + 3*4^3 + 4^2 + 3*4 + 3
Comme exemple plus complexe, la 3représentation héréditaire de la
7981676788374679859068493351144698070458
est
2*3^(3^(3 + 1) + 2) + 3 + 1
Le changement de base héréditaire de nde bàc , noté H(b, c, n), est le nombre obtenu en prenant la breprésentation de base héréditaire de n, en remplaçant chaque bpar cet en évaluant l'expression résultante. Par exemple, la valeur de
H(3, 2, 7981676788374679859068493351144698070458)
est
2*2^(2^(2 + 1) + 2) + 2 + 1 = 2051
Le défi
On vous donne en entrée trois entiers b, c, n, pour lequel vous pouvez prendre pour acquis n >= 0et b, c > 1. Votre sortie est H(b, c, n). Le nombre d'octets le plus court l'emporte et les failles standard sont interdites. Vous pouvez écrire soit une fonction soit un programme complet. Vous devez être capable de gérer des entrées et des sorties arbitrairement grandes (bignums).
Cas de 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
Fait amusant
Pour tout entier n, la séquence obtenue par
n1 = n
n2 = H(2, 3, n1) - 1
n3 = H(3, 4, n2) - 1
n4 = H(4, 5, n3) - 1
....
atteint finalement 0. Ceci est connu comme le théorème de Goodstein .
D(GHY=Z0)R&Y+*%YG^H(GHZ)(GH/YGhZ. N'hésitez pas à l'ajouter si vous le souhaitez (je m'en vais aux astuces pour jouer au golf en pyth: D)