Фон
У цьому виклику базове b
представлення цілого числа n
є вираженням n
як суми повноважень b
, де кожен член має місце найчастіше b-1
. Наприклад, базовим 4
представленням 2015
є
4^5 + 3*4^4 + 3*4^3 + 4^2 + 3*4 + 3
Тепер, спадкова base- b
уявлення n
виходить шляхом перетворення експоненти в їх base- b
уявлень, а потім перетворювати їх показники, і так далі рекурсивно. Таким чином, спадкова base- 4
уявлення 2015
IS
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
на 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)
. Виграє найкоротший байт, а стандартні лазівки заборонені. Ви можете написати або функцію, або повну програму. Ви повинні мати можливість обробляти довільно великі входи та виходи (bignums).
Випробування
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)