На этом шаге мы рассмотрим алгоритм получения этого числа.
Число π, равное 3,14159... имеет большое значение в математике и может быть получено с использованием множества формул. Одна из самых простых - формула Лейбница. Согласно этой формуле следующий бесконечный ряд сходится к числу π:
π = 4/1 - 4/3 + 4/5 - 4/7 + 4/9 - 4/11...
Вы могли заметить, что числитель в этом бесконечном ряду всегда равен 4, знаменатель увеличивается на 2, а операциями над элементами ряда являются по очереди сложение и вычитание.
Мы можем моделировать ряды простым способом, переводя части формулы в переменные внутри функции. Числитель может быть константой 4, а знаменатель - переменной, которая начинается с 1 и каждый раз увеличивается на 2. Операция может быть представлена как -1 или 1 в зависимости от того, является она сложением или вычитанием. Наконец, переменная pi в примере ниже используется для накопления суммы элементов ряда по мере выполнения цикла for.
def calculate_pi(n_terms: int) -> float: numerator: float = 4.0 denominator: float = 1.0 operation: float = 1.0 pi: float = 0.0 for _ in range(n_terms): pi += operation * (numerator / denominator) denominator += 2.0 operation *= -1.0 return pi if __name__ == "__main__": print(calculate_pi(1000000))
Эта функция является примером того, как быстрое преобразование между формулой и программным кодом может быть простым и эффективным при моделировании или имитации интересной концепции. Механическое преобразование - полезный инструмент, но необходимо помнить, что это не всегда самое эффективное решение. Безусловно, формула Лейбница для числа π может быть реализована посредством более эффективного или компактного кода.
Со следующего шага мы начнем рассматривать Ханойские башни.