Se puoi generare un hash univoco garantito, fallo. Tuttavia, ciò significa che le coordinate della casella devono essere relativamente piccole (ad esempio se una casella può essere compresa tra 0 e 1, con incrementi di 0,1, allora sono 10 passi per ogni coordinata, rendendo possibili 10 ^ 4 valori univoci, assumendo 2 caselle può sovrapporsi)
Nella maggior parte dei casi non sarai in grado di garantire un hash unico, quindi genera quello che puoi e capisci che i tuoi hash potrebbero collidere. Se questo è il caso, dipende da cosa stai cercando di fare - penso che vorrai memorizzare questi hash clashing in una lista di raccolte simili e quando leggi un box, esegui iterate su tutti gli scontri per trovare quello che vuoi. Il punto è che puoi saltare rapidamente quasi tutte le caselle non necessarie per arrivare a quello che volevi.
SO ha una buona spiegazione di quali sono le tabelle hash e in che modo vengono utilizzate.
Nel tuo caso, potresti voler considerare un singolo angolo per identificare le tue scatole se non si sovrappongono, la dimensione della scatola è irrilevante in tal caso. Qualunque cosa tu faccia, prova a calcolare l'hash il più velocemente possibile in quanto verrà calcolato spesso.