배경:
Pi ( π
)는 초월 숫자 이므로 종료하지 않는 10 진수 표현을 갖습니다. 마찬가지로 다른 정수 기반으로 작성된 표현은 종료되지 않습니다. 그러나 우리가 그것을 기본으로 쓴다면 π
어떨까요?
10 진수는 10의 거듭 제곱을 나타내므로 다음과 같습니다.
π = 3.14… = (3 * 10^0) + (1 * 10^-1) + (4 * 10^-2) + …
따라서 π
밑에서 숫자는 π
다음 과 같이 거듭 제곱을 나타냅니다 .
π = 10 = (1 * π^1) + (0 * π^0)
이 새로운 기반에서 정수는 이제 종료되지 않은 표현을 갖습니다. 이제 10 진수 10은 다음과 같습니다.
10 => 100.01022… = (1 * π^2) + (0 * π^1) + (0 * π^0) + (0 * π^-1) + (1 * π^-2) + …
기본에 있습니다 π
이이 자리 미만이기 때문에 사용되는 숫자는 0, 1, 2, 3입니다 π
.
도전:
음이 아닌 정수가 주어지면 다음 x
중 하나입니다.
base에서 표현을 출력 (정지하지 않고)합니다
π
. 숫자에 유한 표현 (0, 1, 2, 3)이 있으면 무한 영 (0)을 인쇄하는 대신 프로그램이 중지 될 수 있습니다.임의로 큰 정수를 가져 와서 base
n
의 첫 번째n
숫자를 출력하십시오 .x
π
규칙 :
- 숫자에는 가능한 여러 표현 이 있으므로 가장 큰 (정규화 된) 것으로 나타나는 것을 출력해야합니다 . 로 그냥
1.0 = 0.9999…
진수,이 문제도이 기본 존재합니다. 기본적π
으로 하나는 여전히1.0
있지만0.3011…
예를 들어 로 쓸 수도 있습니다 . 마찬가지로 10은100.01022…
이지만30.121…
또는 로 쓸 수도 있습니다23.202…
. - 이것은 코드 골프이므로 가장 적은 바이트가 이깁니다. 프로그램 또는 기능.
- 붙박이 없음 ( 나는 당신을보고 있습니다 , Mathematica )
결과 :
0 = 0
1 = 1
2 = 2
3 = 3
4 = 10.220122021121110301000010110010010230011111021101…
5 = 11.220122021121110301000010110010010230011111021101…
6 = 12.220122021121110301000010110010010230011111021101…
7 = 20.202112002100000030020121222100030110023011000212…
8 = 21.202112002100000030020121222100030110023011000212…
9 = 22.202112002100000030020121222100030110023011000212…
10 = 100.01022122221121122001111210201201022120211001112…
42 = 1101.0102020121020101001210220211111200202102010100…
1337 = 1102021.0222210102022212121030030010230102200221212…
9999 = 100120030.02001010222211020202010210021200221221010…
확인:
당신은 당신이 매스 매 티카 코드를 사용하여 원하는 출력을 확인할 수 있습니다 여기를 . 첫 번째 매개 변수는 x
이고 세 번째 매개 변수는 입니다 n
. 시간이 초과되면 작은 것을 골라 n
실행하십시오. 그런 다음 "코드에서 열기"를 클릭하여 프로그램과 함께 새 Mathematica 워크 시트를 엽니 다. 거기에는 시간 제한이 없습니다.
관련 :
n
Pi는 적어도 n
자릿수 이상의 자릿수를 가져야한다고 생각합니다 .