それぞれ32ビットの3つの値の3D位置を32ビットの単一値に変換する一般的な方法は、ハッシュ技術または散布機能を使用することです。

分散関数は、32ビットのこの場合、固定サイズの出力で任意のサイズの入力をマップする関数です。分散関数は決定論的でなければなりません。つまり、特定のエントリに対して常に同じ結果を生成します。さらに、分散関数は均一でなければなりません。つまり、可能な各入力値には、可能な各出力値を生成する可能性が等しくあります。

この変換を行う簡単な方法は、96ビットチェーン内の32ビットの3つの値を連結し、SHA-256などの分散関数を適用して32ビットの単一値を取得することです。SHA-256関数は256ビットハッシュを生成するため、最初の32ビットを切り捨てて最終値を取得できます。

逆のプロセスを行うには、「des-haha」手法を使用できます。つまり、以前に取得した32ビットの値から元の値を回復する逆分散関数または検索アルゴリズムを適用できます。ただし、分散関数は反転されないように設計されているため、これは不可能かもしれません。そのため、元の値の近似のみが取得できる可能性があります。
Una forma común de convertir una posición 3D de 3 valores de 32 bits cada uno en un único valor de 32 bits es utilizar la técnica de hashing o función de dispersión.

Una función de dispersión es una función que mapea entradas de cualquier tamaño a una salida de tamaño fijo, en este caso de 32 bits. Una función de dispersión debe ser determinista, es decir, que siempre produzca el mismo resultado para una entrada dada. Además, la función de dispersión debe ser uniforme, es decir, que cada posible valor de entrada tenga una probabilidad igual de producir cada posible valor de salida.

Una forma simple de realizar esta conversión es concatenar los 3 valores de 32 bits en una cadena de 96 bits y luego aplicar una función de dispersión como SHA-256 para obtener un único valor de 32 bits. La función SHA-256 produce un hash de 256 bits, por lo que se puede truncar a los primeros 32 bits para obtener el valor final.

Para hacer el proceso inverso, se puede utilizar una técnica de "des-hash". Es decir, se puede aplicar una función de dispersión inversa o algoritmo de búsqueda que recupere los valores originales a partir del valor de 32 bits obtenido previamente. Sin embargo, esto puede no ser posible ya que las funciones de dispersión se diseñan para no ser invertibles, por lo que es probable que solo se pueda obtener una aproximación de los valores originales.