[eside-ghost] Python
Jon Ander Ortiz
jonbaine en gmail.com
Jue Ene 26 11:15:17 CET 2012
Piensa que los enteros en python no tienen longitud máxima (al menos las
últimas versiones incorporan bignum), por lo que te da igual 4000 que 8000
dígitos.
Mientras que internamente la función de gmpy2 no utilice conversiones de
entero a float (que sí que tienen tamaño máximo), va a funcionar.
En el peor de los casos, siempre puede implementarte una versión del
algoritmo de Newton-Raphson, pero entiendo que esto ya sería la última
opción.
Algo hay por ahí suelto ->
http://mail.python.org/pipermail/tutor/2009-January/066485.html pero
tampoco tiene porqué ser demasiado fiable.
Un saludo!!
Jonan
2012/1/26 QuarkBite <quarkbite en gmail.com>
> Justo es lo que estaba probando, he tenido que ajustar la precision a 1100
> para conseguir la raiz exacta.
>
> gmpy2.context().precision = 1100
>
> asi que a voz de pronto para conseguir la precision que quiero tengo que
> usar el doble de digitos de precision en gmpy del numero al que estoy
> realizando la raiz.
>
> El 26 de enero de 2012 10:54, Jon Ander Ortiz <jonbaine en gmail.com>escribió:
>
> Se puede modificar la precisión de gmpy en sus cálculos:
>>
>> http://code.google.com/p/gmpy/wiki/UsingGmpy2AndMpfr
>>
>> A ver si tuneando un poco los parámetros te acercas a lo que necesitas.
>>
>> Un saludo:
>> Jonan
>>
>>
>> 2012/1/26 QuarkBite <quarkbite en gmail.com>
>>
>>> Que va, si el codigo es de lo mas sencillo.
>>>
>>> >>import gmpy2
>>> >>
>>> >>x=251959084.....
>>> >>z=int(gmpy2.sqrt(x))
>>> >>print(z)
>>>
>>>
>>>
>>> El 26 de enero de 2012 10:29, Alexandre Paz Mena <erzapito en gmail.com>escribió:
>>>
>>> Puede ser la diferencia por el número de decimales de 1/3?
>>>>
>>>>
>>>> 2012/1/26 QuarkBite <quarkbite en gmail.com>
>>>>
>>>>> Bueno, estoy probando la librería y no hace lo que me esperaba.
>>>>> Para las pruebas de que el código lo estoy haciendo bien, tengo un
>>>>> numero de unas 700 cifras y su raíz cuadrada exacta, que es un numero de
>>>>> algo mas de 250 cifras. Cuando realizo la raíz cuadrada con gmpy2 la
>>>>> diferencia entre el resultado y la raíz exacta es brutal.
>>>>> La raíz exacta sin decimales es : 158732191050391204174482.....7844
>>>>> La raíz que me calcula gmpy2 es :158732191050391201310487.....7776
>>>>>
>>>>> Claro, yo me refería a que puedo tolerar un error cualquiera en los
>>>>> decimales de la raíz pero no en el entero.
>>>>>
>>>>> El 26 de enero de 2012 09:25, Alfredo Beaumont <
>>>>> alfredo.beaumont en gmail.com> escribió:
>>>>>
>>>>>> El problema es que IEEE754 te dará problemas independientemente de la
>>>>>> precisión que quieras, puesto que no soportará un float de un número
>>>>>> de 1000 cifras, y lo necesitarás para obtener la raíz cúbica. Así
>>>>>> pues, veo 2 opciones, las que se han propuesto: factorización de
>>>>>> enteros o librería de precisión arbitraria.
>>>>>>
>>>>>> 2012/1/26 Bruno Gonzalez <stenyak en gmail.com>:
>>>>>> > El tema de la precisión, dices que no te importa, pero si IEE754 te
>>>>>> da
>>>>>> > problemas, puedes pasarte a una librería de precisión arbitraria,
>>>>>> como este
>>>>>> > wrapper http://code.google.com/p/gmpy/
>>>>>> >
>>>>>> >
>>>>>> > 2012/1/26 Alexandre Paz Mena <erzapito en gmail.com>
>>>>>> >>
>>>>>> >> Respecto al número de cifras no te puedo ayudar pero la raíz
>>>>>> cubica es
>>>>>> >> elevar a un tercio.
>>>>>> >>
>>>>>> >> El 26/01/2012 09:04, "QuarkBite" <quarkbite en gmail.com> escribió:
>>>>>> >>>
>>>>>> >>> Hola
>>>>>> >>>
>>>>>> >>> A ver si alguien puede orientarme un poco. Estoy con un pequeño
>>>>>> >>> proyecto en python y necesito realizar la raíz cubica de un
>>>>>> numero con 1000
>>>>>> >>> cifras, no es necesario que sea exacta, con el numero entero de
>>>>>> la raíz es
>>>>>> >>> suficiente.
>>>>>> >>> Realmente son 2 problemas, el primero es que no hay, o por lo
>>>>>> menos no he
>>>>>> >>> visto nada al respecto, una función implementada para realizar la
>>>>>> raíz
>>>>>> >>> cubica de un numero, por lo que tendré que escribirla a mano. Y
>>>>>> el segundo
>>>>>> >>> es conseguir dividir un numero tan grande, pues python a partir
>>>>>> de 200
>>>>>> >>> cifras mas o menos casca con el tema de decimales.
>>>>>> >>> Tal vez sea sencillisimo, pero no soy capaz.
>>>>>> >>>
>>>>>> >>>
>>>>>> >>> _______________________________________________
>>>>>> >>> eside-ghost mailing list
>>>>>> >>> eside-ghost en listas.deusto.es
>>>>>> >>> https://listas.deusto.es/mailman/listinfo/eside-ghost
>>>>>> >>
>>>>>> >>
>>>>>> >> _______________________________________________
>>>>>> >> eside-ghost mailing list
>>>>>> >> eside-ghost en listas.deusto.es
>>>>>> >> https://listas.deusto.es/mailman/listinfo/eside-ghost
>>>>>> >
>>>>>> >
>>>>>> >
>>>>>> >
>>>>>> > --
>>>>>> > Saludos,
>>>>>> > Bruno González
>>>>>> >
>>>>>> > _______________________________________________
>>>>>> > Jabber: stenyak AT gmail.com
>>>>>> > http://www.stenyak.com
>>>>>> >
>>>>>> > _______________________________________________
>>>>>> > eside-ghost mailing list
>>>>>> > eside-ghost en listas.deusto.es
>>>>>> > https://listas.deusto.es/mailman/listinfo/eside-ghost
>>>>>> _______________________________________________
>>>>>> eside-ghost mailing list
>>>>>> eside-ghost en listas.deusto.es
>>>>>> https://listas.deusto.es/mailman/listinfo/eside-ghost
>>>>>>
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> eside-ghost mailing list
>>>>> eside-ghost en listas.deusto.es
>>>>> https://listas.deusto.es/mailman/listinfo/eside-ghost
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> Alexandre Paz Mena
>>>>
>>>> _______________________________________________
>>>> eside-ghost mailing list
>>>> eside-ghost en listas.deusto.es
>>>> https://listas.deusto.es/mailman/listinfo/eside-ghost
>>>>
>>>
>>>
>>> _______________________________________________
>>> eside-ghost mailing list
>>> eside-ghost en listas.deusto.es
>>> https://listas.deusto.es/mailman/listinfo/eside-ghost
>>>
>>
>>
>> _______________________________________________
>> eside-ghost mailing list
>> eside-ghost en listas.deusto.es
>> https://listas.deusto.es/mailman/listinfo/eside-ghost
>>
>
>
> _______________________________________________
> eside-ghost mailing list
> eside-ghost en listas.deusto.es
> https://listas.deusto.es/mailman/listinfo/eside-ghost
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: https://listas.deusto.es/mailman/private/eside-ghost/attachments/20120126/64efd436/attachment.htm
Más información sobre la lista de distribución eside-ghost