9

У кого-нибудь есть сценарий, который я мог бы легко запустить как:

sh generatepi.sh 10000

где 10000 - число сгенерированных π (Pi) десятичных знаков.

1 ответ1

19

Предполагая, что в вашей системе есть утилита bc (Basic Calculator) , вы можете использовать следующую команду и немного старой доброй математики для вычисления от π до 10000 десятичных знаков:

echo "scale=10000; 4*a(1)" | bc -l

Это, вероятно, займет много времени, чтобы заполнить 10 000 знаков после запятой.

Нарушая команду ...

  • scale = 10000 - указывает количество десятичных разрядов для результата
  • 4 * a(1) - возвращает арктангенс 1 [который равен 45 °: 45 x (π /180) или ¼π], затем умножается на 4, чтобы получить π.
  • bc -l - передать всю строку функции в утилиту bc , -l указывает на загрузку стандартной математической библиотеки, необходимой для функции arctangent, a().

Чтобы обернуть это в сценарий, как вы указали в своем вопросе, используйте ваш любимый редактор, чтобы написать следующее и сохранить его как generatepi.sh:

#!/bin/bash
echo "scale=$1; 4*a(1)" | bc -l

Затем из терминала используйте chmod +x generatepi.sh из папки, в которую вы сохранили файл, что даст права на выполнение скрипта. Синтаксис будет generatepi.sh [number of places] . Обратите внимание, что здесь используется очень простой способ обработки параметров, и он не проверяет входные данные, поэтому убедитесь, что вы передаете ему только положительные целые числа в качестве параметра.

Большинство систем Linux должны иметь bc но вам может понадобиться установить его в некоторых случаях (например, apt-get в Ubuntu, emerge в Gentoo и т.д.). Также есть порт bc для Windows.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .