Есть ли способ получить золотое сечение phi
в стандартном модуле Python? Я знаю о e
и pi
в модуле math
, но, возможно, я где-то пропустил определение phi
.
Определено ли золотое сечение в Python?
Ответы (2)
scipy.constants
определяет золотое сечение как scipy.constants.golden
. Он нигде не определен в стандартной библиотеке, предположительно потому, что его легко определить самому:
golden = (1 + 5 ** 0.5) / 2
Нет. Однако, поскольку вы все равно импортируете math, phi можно вычислить так же, как и pi:
>>> import math
>>> pi = 4 * math.atan(1)
>>> pi
3.141592653589793
>>> math.pi
3.141592653589793
>>> phi = ( 1 + math.sqrt(5) ) / 2
>>> phi
1.618033988749895
Причина, по которой math имеет значения pi и e, но не phi, может быть в том, что об этом никто не просил.
В документации python math говорится, что math.pi - математическая константа π = 3,141592 ... с доступной точностью. Однако вы можете в четыре раза вычислить арктангенс единицы и получить примерно тот же результат : pi=4*math.atan(1)
.
То же самое можно сказать и о phi, который не всегда доступен как math.phi
, но вы можете найти ближайшую доступную точность с помощью решение квадратного уравнения x² + x -1 = 0: phi=(1+math.sqrt(5))/2
.
4*math.atan(1)
не даст вам лучшего приближения, потому что вы все еще используете двойные числа внизу. Да, даже если у вас есть суперкомпьютер. :) Вам не нужен суперкомпьютер, чтобы сгенерировать более 53 бит пи.
- person ppm; 09.12.2019
math.pi
, а скорее для гамма-функции. Обновим ответ, чтобы подтвердить свою ошибку.
- person Iuri Guilherme; 17.07.2020