背景
在这一挑战,一个碱基b
表示的整数的n
是的表达n
作为功率的总和b
,其中每个术语最多出现b-1
次数。例如,的基本4
表示2015
是
4^5 + 3*4^4 + 3*4^3 + 4^2 + 3*4 + 3
现在,遗传碱基b
的表示n
是通过将指数纳入其碱基获得的b
陈述,然后将它们的指数,等等递归。因此,的遗传基础4
表示2015
为
4^(4 + 1) + 3*4^4 + 3*4^3 + 4^2 + 3*4 + 3
作为一个更复杂的例子中,遗传碱基3
的表示
7981676788374679859068493351144698070458
是
2*3^(3^(3 + 1) + 2) + 3 + 1
从到的遗传基数变化(n
b
c
表示为H(b, c, n)
)是通过获取的遗传基数b
表示形式n
,用b
by 替换每一个c
并评估结果表达式而获得的数字。例如,
H(3, 2, 7981676788374679859068493351144698070458)
是
2*2^(2^(2 + 1) + 2) + 2 + 1 = 2051
挑战
您作为输入三个整数b
,c
,n
,为此,你可以假设n >= 0
和b, c > 1
。您的输出是H(b, c, n)
。最短的字节数获胜,并且不允许出现标准漏洞。您可以编写函数或完整程序。您必须能够处理任意大的输入和输出(大数)。
测试用例
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
有趣的事实
对于任何整数n
,通过
n1 = n
n2 = H(2, 3, n1) - 1
n3 = H(3, 4, n2) - 1
n4 = H(4, 5, n3) - 1
....
最终到达0
。这就是所谓的古德斯坦定理。
D(GHY=Z0)R&Y+*%YG^H(GHZ)(GH/YGhZ
。如果需要,可以随意添加(我不了解pyth打高尔夫球的技巧:D)