demasiado para Python???

Francesc Alted falted en openlc.org
Mar Mayo 6 12:27:37 CEST 2003


Mensaje citado por: "Andrés A. Rocchia" <arocchi en fi.uba.ar>:
>  Bien les envío el siguiente algoritmo, que al resolverlo en mi PC
> tardo
> 4.5 minutos (Pentiun 100MHz - Windows 98 - 32RAM).

Primera cosa. A mi tu código me tarda 1.75 segundos, pero tengo un Pentium a 2 
GHz - Windows XP - 256 MB. Sin embargo, la diferencia deberia ser de alrededor 
de un factor 20, no un factor 150 (!!??). 

> 
>  Es que ya para este tipo de calculos tengo que usar C++ ? Todavia no
> probe con Pascal (que domino un poco) pero supongo que debe hacerlo mas
> rápido que en 4.5 minutos.

En tu código veo que defines una matriz bidimensional, cuando en realidad sólo 
te hace falta una uni-dimensional (vector), prueba a poner:

h = numarray.zeros([jj+2],Float64)+ho

en lugar de:

h = numarray.zeros([jj+2, 1],Float64)+ho

ya que así los cáculos se efectuan con escalares, en lugar de vectores. A mi 
esto me acelera los cálculos un factor 35, quedándose en 0.05 s (en tu máquina 
*deberia* ser 1 s, más o menos).

Si quieres más velocidad aún sospecho que habria que hacer una extensión en C. 
Pero lo dejaremos para si la ocasión lo requiere ;-)

Francesc Alted




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