Curiosidad sobre __hash__()
Francesc Alted
faltet en pytables.org
Jue Feb 5 08:29:11 CET 2009
A Thursday 05 February 2009, Chema Cortes escrigué:
> El Thursday 05 February 2009 01:10:01 Pepe Aracil escribió:
> > Creo que con un diccionario de 65536 entradas y un hash de 32 bits,
> > tengo 1/65536 posibilidades de tener una colisión.
> >
> > Son pocas posibilidades, pero yo no utilizaría un hash de 32 bits
> > para "cosas" críticas.
>
> No entiendo porqué ha de ser un problema. Los hashes se usan para
> ordenar los elementos con el fin de hacer búsquedas mucho más
> rápidas. (En realidad, determinan el orden de los items de un
> diccionario, por éso parece que estén desordenados). Que exista una
> "colisión" de dos índices en un diccionario sólo implica que se tarde
> un poco más en acceder al item solicitado;
Exacto.
> pero, aun con todo, puede
> que sea menos tiempo que si se hubiera elegido longitudes mayores de
> hash.
Puede que tengas razón. Supongo que la razón básica de elegir hashes de
32-bit en plataformas de 32-bit es por temas de velocidad. Igual que
elegir una de 64-bit para plataformas de 64-bit: la aritmética de
64-bit suele ser más rápida que la de 32-bit para estas últimas
plataformas.
--
Francesc Alted
------------ próxima parte ------------
_______________________________________________
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