Tło:
Pi ( π
) jest liczbą transcendentalną , a zatem ma niekończącą się reprezentację dziesiętną. Podobnie reprezentacja nie kończy się, jeśli jest zapisana w jakiejkolwiek innej liczbie całkowitej. Ale co, jeśli napisalibyśmy to w bazie π
?
Cyfry dziesiętne reprezentują potęgi 10, więc:
π = 3.14… = (3 * 10^0) + (1 * 10^-1) + (4 * 10^-2) + …
Zatem w bazie π
cyfry reprezentowałyby moc π
:
π = 10 = (1 * π^1) + (0 * π^0)
W tej nowej bazie liczby całkowite mają teraz reprezentacje nie kończące się. Zatem liczba dziesiętna staje się teraz następująca:
10 => 100.01022… = (1 * π^2) + (0 * π^1) + (0 * π^0) + (0 * π^-1) + (1 * π^-2) + …
Zauważ, że w bazie π
użyte cyfry to 0,1,2,3, ponieważ są to cyfry mniejsze niż π
.
Wyzwanie:
Biorąc pod uwagę nieujemną liczbę całkowitą x
:
Wyjście (bez zatrzymywania) jego reprezentacja w bazie
π
. Jeśli liczba ma skończoną reprezentację (0, 1, 2, 3), wówczas program może zatrzymać się zamiast drukować nieskończone zera.Weź dowolną dużą liczbę całkowitą
n
i wypisz pierwszen
cyfryx
w bazieπ
.
Zasady:
- Ponieważ liczba ma wiele możliwych reprezentacji, musisz wypisać tę, która wydaje się największa (znormalizowana). Podobnie jak
1.0 = 0.9999…
w systemie dziesiętnym, ten problem istnieje również w tej bazie. W bazieπ
jeden jest nadal1.0
, ale można go również zapisać0.3011…
np. Jako . Podobnie dziesięć to100.01022…
, ale może być również zapisane jako30.121…
lub23.202…
. - To jest golf golfowy, więc wygrywa najmniej bajtów. Program lub funkcja.
- Brak wbudowanych elementów ( patrzę na ciebie , Mathematica )
Wyniki:
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…
Pierwsze 10 000 cyfr dziesięciu w bazie Pi
Weryfikacja:
Można sprawdzić każdą wyjściowego chcesz przy użyciu kodu Mathematica tutaj . Pierwszy parametr to x
trzeci n
. Jeśli upłynie limit czasu, wybierz mały n
i uruchom go. Następnie kliknij „Otwórz w kodzie”, aby otworzyć nowy arkusz Mathematica z programem. Nie ma tam limitu czasu.
Konwertuj wynikowy wynik na liczbę tutaj .
Związane z:
n
, zgaduję, że Pi musi mieć co najmniej n
cyfry dokładności.