Напишите программу для вычисления первых 500 цифр числа Пи, соблюдая следующие правила:
- Длина должна быть не более 500 символов.
- Он не может включать в себя «pi», «math.pi» или подобные константы pi, а также не может вызывать библиотечную функцию для вычисления pi.
- Он не может использовать цифры «3», «1» и «4» последовательно.
- Он должен выполняться за разумное время (до 1 минуты) на современном компьютере.
Самая короткая программа выигрывает.
code-golf
restricted-source
pi
Томас О
источник
источник
Ответы:
Гольфскрипт - 29 символов
Позже выложу анализ
источник
Mathematica (34 символа): (без "читерства" с тригоном)
N[2Integrate[[1-x^2]^.5,-1,1],500]
Итак, чтобы объяснить магию здесь:
Integrate[function, lower, upper]
дает вам область под кривой «функция» от «нижнего» до «верхнего». В этом случае это функция[1-x^2]^.5
, которая является формулой, описывающей верхнюю половину круга с радиусом 1. Поскольку круг имеет радиус 1, он не существует для значений x меньше -1 или больше 1. Поэтому мы находим площадь половины круга. Если мы умножим на 2, то получим площадь внутри круга радиуса 1, равную пи.источник
sqrt[1-x^2]
на(1-x^2)^.5)
Питон (83 символа)
источник
PARI / GP, 14
Вы можете избежать триг, заменив вторую строку
или
или
или
или
источник
bc -l (22 = 5 командных строк + 17 программ)
источник
Mathematica (17 байт)
Доказательство действительности .
источник
Python3 136
Использует формулу Мадхавы .
Python3 164
Использует эту формулу.
источник
Mathematica - 50
источник
Пиф , 21
Использует этот алгоритм:
pi = 2 + 1/3*(2 + 2/5*(2 + 3/7*(2 + 4/9*(2 + ...))))
найдено в комментариях к ответу от Golfscript.источник
r
Операция была недавно изменена таким образом, что сломал этот ответ. Измените на1
a0
, и он будет работать в текущем Pyth.Аксиома, 80 байт
для справки https://tuts4you.com/download.php?view.452 ; было бы приблизительно 6 * arctg (1 / sqrt (3)) =% pi и было бы использовано расширение серии для arctg
источник
JavaScript, 68 байт
Попробуйте онлайн!
источник