Это вычисляет значение π с использованием ряда Грегори – Лейбница:
![введите описание изображения здесь](https://i.stack.imgur.com/8sjVq.png)
seq -f '4/%g' 1 2 99999
генерирует дроби:
4/1
4/3
4/5
4/7
4/9
4/11
4/13
4/15
4/17
4/19
Конвейер вставки paste -sd-+
объединяет их с альтернативными разделителями -
и +
.
Наконец, bc -l
выполняет арифметические действия, чтобы вывести результат.
РЕДАКТИРОВАТЬ: как указано в комментарии, эта последовательность сходится очень медленно. Формула Мачина имеет значительно более высокую скорость сходимости:
![введите описание изображения здесь](https://i.stack.imgur.com/tpVXj.png)
Используя то же расширение для tan -1 (x):
![введите описание изображения здесь](https://i.stack.imgur.com/7nUBO.gif)
чтобы вычислить π, мы видим, что он дает правильное значение до 50 цифр 1, используя только первые 50 членов ряда:
$ { echo -n "scale=50;"; seq 1 2 100 | xargs -n1 -I{} echo '(16*(1/5)^{}/{}-4*(1/239)^{}/{})';} | paste -sd-+ | bc -l
3.14159265358979323846264338327950288419716939937510
Всего с помощью 100 членов значение π вычисляется с точностью до более чем 100 цифр:
$ { echo -n "scale=100;"; seq 1 2 200 | xargs -n1 -I{} echo '(16*(1/5)^{}/{}-4*(1/239)^{}/{})';} | paste -sd-+ | bc -l
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
1 Пи
person
devnull
schedule
07.05.2014
bc -l <<< 'scale=5; 22/7'
- person anubhava   schedule 07.05.2014π
не22/7
. - person devnull   schedule 07.05.2014seq
тоже приближение, хотя, без сомнения, лучшее. - person anubhava   schedule 07.05.2014