배경
이 문제에서 정수 의 기본 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
하여 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
합니다. 이것을 Goodstein의 정리라고 합니다.
D(GHY=Z0)R&Y+*%YG^H(GHZ)(GH/YGhZ
. 원한다면 자유롭게 추가하십시오. (pyth : D에서 골프를 치기위한 팁을 떠났습니다.)