2016-12-24 17:52 GMT+01:00 Johnny Alonso <johnny.alonso.quint...@gmail.com>: > Aquí los resultados con el operador ** coinciden, -4 en ambos casos, y lo > acepto como correcto desde el punto de vista del lenguaje, pero no desde el > punto de vista matemático, pues matemáticamente las expresión -2² es > diferente a -(2²).
La convención usual en libros de matemáticas superiores es que -2^2 (léase menos dos al cuadrado) es -4. Es decir, -x^2 = -(x^2) Por desgracia, los libros elementales no siguen siempre la misma convención, y tarde o temprano acaba causando confusión. Por ejemplo, la función x^2 (equis cuadrado) es convexa según casi cualquier libro avanzado, pero la mitad de los libros básicos la consideran cóncava. Y me sé tres definiciones diferentes de la transformada de Fourier, según si mires un libro de física teórica, óptica o ingeniería (seis si cuentas cuál es la directa y cuál es la inversa); y siempre hay que mirar cuál están usando exactamente. > Conjetura: Python no implementa el operador menos unario, pero si el binario > el cual tiene menor precedencia que el de potenciación, así: > > -x**n es interpretado en Python como 0-x**n. Sí que la implementa. dis.dis(lambda x:-x**2) 1 0 LOAD_FAST 0 (x) 3 LOAD_CONST 1 (2) 6 BINARY_POWER 7 UNARY_NEGATIVE 8 RETURN_VALUE Si quieres negar tu propia clase, tienes que implementar el método __neg__(self) /David. _______________________________________________ Python-es mailing list Python-es@python.org https://mail.python.org/mailman/listinfo/python-es