Фон:
Pi ( π) - трансцендентное число , и поэтому оно имеет не заканчивающееся десятичное представление. Аналогично, представление не завершается, если записано в любой другой целочисленной базе. Но что, если мы написали это в базе π?
Цифры в десятичном виде представляют степени 10, поэтому:
π = 3.14… = (3 * 10^0) + (1 * 10^-1) + (4 * 10^-2) + …
Таким образом, в основе πцифры будут представлять полномочия π:
π = 10 = (1 * π^1) + (0 * π^0)
В этой новой базе целые числа теперь имеют не заканчивающиеся представления. Таким образом, 10 в десятичном виде теперь становится следующим:
10 => 100.01022… = (1 * π^2) + (0 * π^1) + (0 * π^0) + (0 * π^-1) + (1 * π^-2) + …
Обратите внимание, что в основе πиспользуются цифры 0,1,2,3, потому что это цифры меньше, чем π.
Вызов:
Учитывая неотрицательное целое число x, либо:
Выведите (без остановки) его представление в базу
π. Если число имеет конечное представление (0, 1, 2, 3), то программа может остановиться вместо вывода бесконечных нулей.Возьмите произвольно большое целое число
nи выведите первыеnцифрыxв базуπ.
Правила:
- Поскольку число имеет несколько возможных представлений, вы должны вывести то, которое кажется наибольшим (нормализованным). Как и
1.0 = 0.9999…в десятичной системе, эта проблема существует и в этой базе. В базеπ, один все еще1.0, но также может быть написано как0.3011…, например. Точно так же десять есть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…
Первые 10 000 цифр из десяти в базе Пи
Проверка:
Вы можете проверить любой вывод, используя код Mathematica здесь . Первый параметр x, третий n. Если время истекло, выберите маленький nи запустите его. Затем нажмите «Открыть в коде», чтобы открыть новый рабочий лист Mathematica с программой. Там нет ограничения по времени там.
Преобразуйте полученный результат в число здесь .
Связанные с:
n, я предполагаю, что Пи должен иметь хотя бы nточность точности.