[Python-es] cubo perfecto

Chema Alonso feeds en nimiux.org
Lun Mar 15 18:06:18 CET 2010


On Mon, Mar 15, 2010 at 05:52:33PM +0100, José Luis Torre Hernández wrote:
> El 15 de marzo de 2010 16:55, Kiko <kikocorreoso en gmail.com> escribió:
> 
> > El 15 de marzo de 2010 16:20, Daniel Garcia <dani en danigm.net> escribió:
> >
> >>  El lun, 15-03-2010 a las 16:18 +0100, Daniel Garcia escribió:
> >>  > El lun, 15-03-2010 a las 16:00 +0100, marmolro escribió:
> >> > > Para estos casos yo suelo sustituir el is_integer() por:
> >> > >
> >> > >
> >> > > >>> round(64**(1./3),0) - 64**(1./3) < 10**-15
> >> > > True
> >> > >
> >> > >
> >> > > El valor de la aproximación ya lo fijas en función de la precisión que
> >> > > quieres. No lo conozco en detalle, pero supongo que se podría dar el
> >> > > caso de "falsos positivos".... ¿alguien conoce una técnica mejor?
> >> > >
> >> > >
> >> >
> >> > Una forma podría ser:
> >> >
> >> > (x**(1./3))**3 == x
> >>
> >> Esto no vale para nada, quiero decir, sólo vale para saber que estás
> >> teniendo un fallo de precisión. Me he liado entre unas cosas y otras.
> >>
> >>
> >> _______________________________________________
> >> Python-es mailing list
> >> Python-es en python.org
> >> http://mail.python.org/mailman/listinfo/python-es
> >> FAQ: http://python-es-faq.wikidot.com/
> >>
> >>
> > Yo, si hago:
> >
> > int(nro**(1./3)) me da siempre la parte entera del cubo del número, sea un
> > cubo perfecto o no.
> >
> >
> > _______________________________________________
> > Python-es mailing list
> > Python-es en python.org
> > http://mail.python.org/mailman/listinfo/python-es
> > FAQ: http://python-es-faq.wikidot.com/
> >
> >
> Lo primero que habría que hacer es definir un poco más el problema.
> Se trata de números enteros o de números reales.
> 
> Saludos
> José Luis Torre

Mira a ver si te funciona esto:

import math
l = lambda x: not math.modf(x**(1.0/3))[0]
l(8)

Saludos.

> _______________________________________________
> Python-es mailing list
> Python-es en python.org
> http://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/




Más información sobre la lista de distribución Python-es