Curiosidad sobre __hash__()

Francesc Alted faltet en pytables.org
Mie Feb 4 10:49:42 CET 2009


A Wednesday 04 February 2009, Pepe Aracil escrigué:
> Hola lista.
>
> Me ha sorprendido que la función hash "solo"
> devuelva un entero.
>
> (1,2,3,4).__hash__()
> 89902565
>
> ¿No os parece que aumenta mucho las probabilidades
> de que se produzca una colisión no deseada en un
> diccionario por ej.?

Bueno, si la función hash está bien elegida, un entero de 32-bit da para 
2**31 hash diferentes, y ya tendria que ser grande el diccionario para 
que esto sea un problema.

Por otra parte, con plataformas de 64-bit:

In [1]: (1,2,3,4).__hash__()
Out[1]: 485696759010151909

el rango se eleva a 2**63, con lo que la probabilidad de colisiones se 
acerca más todavia a 0.

>
> Lo mas seguro es que sea solo un problema de
> percepción de magnitud por mi parte :)

Saludos,

-- 
Francesc Alted
_______________________________________________
Lista de correo Python-es 
http://listas.aditel.org/listinfo/python-es
FAQ: http://listas.aditel.org/faqpyes





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