Me he estado preguntando esto por algún tiempo. Como dice el título, ¿cuál es más rápido, la función real o simplemente elevar a la mitad la potencia?
ACTUALIZAR
Esto no es una cuestión de optimización prematura. Esto es simplemente una cuestión de cómo funciona realmente el código subyacente. ¿Cuál es la teoría de cómo funciona el código Python?
Le envié un correo electrónico a Guido van Rossum porque realmente quería saber las diferencias en estos métodos.
Mi email:
Hay al menos 3 formas de hacer una raíz cuadrada en Python: math.sqrt, el operador '**' y pow (x, .5). Tengo curiosidad por las diferencias en la implementación de cada uno de estos. Cuando se trata de eficiencia, ¿cuál es mejor?
Su respuesta:
pow y ** son equivalentes; math.sqrt no funciona para números complejos y enlaza con la función C sqrt (). En cuanto a cuál es más rápido, no tengo idea ...
math.sqrt
es una rutina más optimizada (tal como es) y expresa la intención con mayor claridad, siempre debe preferirse a ella x**.5
. No es una optimización prematura saber lo que escribes, y elegir la alternativa que sea más rápida y proporcione más claridad de código. Si es así, debe argumentar igualmente bien por qué elegiría las otras alternativas.