[pyar] Crear una lista gigante

Alejandro Santos listas en alejolp.com
Dom Jun 6 15:52:07 ART 2010


Jesús Francisco wrote:
> El día 6 de junio de 2010 12:42, Alejandro Santos <listas en alejolp.com> escribió:
>> Jesús Francisco wrote:
>>> El día 5 de junio de 2010 21:59, Alejandro Santos <listas en alejolp.com> escribió:
>>>> Jesús Francisco wrote:
>>>>> ¿cómo es la forma más rápida en Python de crear una lista de N
>>>>> elementos y todos inicializados en un valor x? Una forma es:
>>>>>
>>>>> [x]*N
>>>>>
>>>>> Pero me gustaría algo tan rápido como el calloc de C en el caso x==0.
>>>>> Esto porque la versión que escribí es O(N) y si no me equivoco calloc
>>>>> es O(1). No puedo usar numpy, solo la Biblioteca estándar de Python.
>>>>> ¿es lo que escribí la forma más rápida?
>>>> Crear e inicializar un array o lista de N elemento siempre va a ser O(N)
>>>> de una forma u otra. Capaz puedas bajar cuánto afectan las constantes
>>>> pero... siempre vas a tener que procesar esos N elementos.
>>>>
>>>> ¿en que contexto estás haciendo esa inicialización?
>>>>
>>> http://www.spoj.pl/problems/PRIME1/
>>>
>> ¿Queres un array para guardar los numeros primos? No hace falta hacer
>> eso, con imprimir los valores en pantalla es suficiente :)
>>
> 
> Bueno, en este caso sí hace falta. Nota los límites de tiempo (6
> segundos) y el peor de los casos es los primos del 999900000 al
> 1000000000.
> 

Si, es cierto. Ya me dió TLE tres veces :(

Hay que usar un array como vos decis. La version de la raiz cuadrada no
funciona, ni tampoco usando un diccionario. Queda la tercer opcion pero
ya me tengo que ir...

Saludos,

-- 
Alejandro Santos
http://www.alejolp.com.ar




More information about the pyar mailing list