Radicación negativa en Python
Publicado por Juan Fernandez (4 intervenciones) el 06/01/2016 18:31:33
Buenos días a todo el mundo.
Me gustaría hacer una pregunta por si alguien puede ayudarme.
Estoy tratando de aprender Python por mi cuenta (nada serio, sólo por el placer de adquirir conocimientos). El caso es que, probando a crear funciones, me dio por ponerme con la radicación. La función que he creado es la siguiente:
Esta función, en principio debería devolver la raiz "n" de un número. Con los positivos todo funciona bien (al menos con los que he probado). Pero con los números negativos, la cosa se pone interesante.
Dado que el módulo "math" de Python no opera con números negativos en las raíces, importamos el módulo "cmath". He aquí algunos de los resultados que obtenemos al ejecutar esta función:
>>> radicacion(-27, 3)
1.5000000000000004 + 2.598076211353316j
>>> radicacion(-4,2)
1.2246467991473532e-16 + 2j
Evidentemente, estos resultados no son correctos y, para ser sinceros, no tengo ni idea de donde salen.
Si alguien puede echarme una mano, se lo agradecería.
Indicar que opero con Python 3.4 bajo Windows 7 (que se me olvidaba mencionarlo)
Me gustaría hacer una pregunta por si alguien puede ayudarme.
Estoy tratando de aprender Python por mi cuenta (nada serio, sólo por el placer de adquirir conocimientos). El caso es que, probando a crear funciones, me dio por ponerme con la radicación. La función que he creado es la siguiente:
1
2
3
4
5
6
7
8
9
10
11
12
13
def radicacion(numero, indice):
'''(número, numero) -> número
Retorna la raíz de índice "indice" del número "numero" pasados como argumentos.
Ejemplo:
>>> radicacion(25,2)
5
>>> radicacion(64,3)
4
'''
return numero ** (1.0 / indice)
Esta función, en principio debería devolver la raiz "n" de un número. Con los positivos todo funciona bien (al menos con los que he probado). Pero con los números negativos, la cosa se pone interesante.
Dado que el módulo "math" de Python no opera con números negativos en las raíces, importamos el módulo "cmath". He aquí algunos de los resultados que obtenemos al ejecutar esta función:
>>> radicacion(-27, 3)
1.5000000000000004 + 2.598076211353316j
>>> radicacion(-4,2)
1.2246467991473532e-16 + 2j
Evidentemente, estos resultados no son correctos y, para ser sinceros, no tengo ni idea de donde salen.
Si alguien puede echarme una mano, se lo agradecería.
Indicar que opero con Python 3.4 bajo Windows 7 (que se me olvidaba mencionarlo)
Valora esta pregunta


0