[eside-ghost] Python
QuarkBite
quarkbite en gmail.com
Jue Ene 26 11:29:03 CET 2012
En otro proyecto diferente hice algo por el estilo para raices cuadradas,
pero tampoco funciona muy bien al trabajar con numeros tan grandes.
def raiz(num):
x=0
y=num
while x != y:
if x==y+1 or x==y-1:
return y
x = y
y = (num/y + y)/2
y=int(y)
return y
Con respecto a scipy ya tenia conocimiento de su existencia pero tiene
demasiados parametros y queria algo sencillo.
Con esta libreria, gmpy, tengo suficiente para trabajar con numeros muy
grandes.
El 26 de enero de 2012 11:15, Jon Ander Ortiz <jonbaine en gmail.com> escribió:
> 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
>>
>
>
> _______________________________________________
> 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/a25e3450/attachment-0001.htm
Más información sobre la lista de distribución eside-ghost