Estoy buscando la forma óptima de calcular un código hash para un conjunto de puntos bi-dimensionales (para poder almacenar polígonos en una tabla hash).¿Cuál es la forma óptima de calcular un código hash para un conjunto de puntos?
Existen algunas formas obvias de hacerlo, como concatenar todas las coordenadas de puntos en una cadena y su código hash, pero esto sería muy lento.
En el otro extremo del espectro de velocidad/colisión, también puedo, por ejemplo, resumir todas las coordenadas, lo que daría como resultado un código muy rápido, pero también crearía muchas colisiones.
¿Cuál es la forma óptima de calcular un código hash para un conjunto de puntos?
¿Es la solución óptima diferente si las coordenadas son enteras (frente a coordenadas reales)?
Editar: Estoy usando .net por lo que el hashcode debe tener 32 bits de longitud.
¿Tiene alguna restricción sobre cómo se pueden superponer los polígonos en el espacio? – Anon
Anon: pueden superponerse; pero me haces sentir curioso: ¿qué diferencia haría? – Brann
Publicó mi respuesta al respecto antes de ver su comentario de respuesta. Estaba preguntando a través de un comentario ya que pensé que probablemente estabas permitiendo superposiciones. – Anon