ℝ³ -> ℕ 有限数量值的映射
ℝ³ -> ℕ mapping for a finite number of values
我正在寻找一种能够将有限但大量的 3 维位置(大约 10^11)映射到索引(因此映射 ℝ³ -> ℕ)的算法
我知道制作 ℕ -> ℝ³ 映射是可能的,而且相当简单,这基本上就是我想做的,但是 ℕ -> ℝ³ 是确定 ℕ 的哪些索引接近的不切实际的方法某个位置,
理想情况下,我还想确保我的 ℕ 的有限子集不包含重复项。
关于如何实施的一些背景知识,以便更好地了解约束和问题以及一些天真的解决方案:
我正在想办法将星系中的恒星映射到一个唯一的 ID,然后我可以将其用作随机数生成器的 "seed",需要 ℕ -> ℝ³ 映射我遍历所有ℕ以找到给定位置附近的ℝ³值,这显然不是一种实用的方法
我已经找到了一些关于 cantor 配对函数和吻合的信息,但是这些会导致问题,因为它们主要适用于 ℕⁿ 而不是 ℝⁿ。
不能保证我的 ℝ³ 值遵循网格,如果确实如此,我可以映射 ℝ³-> ℕ³,方法是找出 "box" 值所在的位置,然后使用 cantor 的配对函数找出which ℕ 属于那个盒子,但在我的情况下,盒子可能包含多个值,或者 none.
在此先感谢您的帮助
我正在寻找一种能够将有限但大量的 3 维位置(大约 10^11)映射到索引(因此映射 ℝ³ -> ℕ)的算法
我知道制作 ℕ -> ℝ³ 映射是可能的,而且相当简单,这基本上就是我想做的,但是 ℕ -> ℝ³ 是确定 ℕ 的哪些索引接近的不切实际的方法某个位置,
理想情况下,我还想确保我的 ℕ 的有限子集不包含重复项。
关于如何实施的一些背景知识,以便更好地了解约束和问题以及一些天真的解决方案:
我正在想办法将星系中的恒星映射到一个唯一的 ID,然后我可以将其用作随机数生成器的 "seed",需要 ℕ -> ℝ³ 映射我遍历所有ℕ以找到给定位置附近的ℝ³值,这显然不是一种实用的方法
我已经找到了一些关于 cantor 配对函数和吻合的信息,但是这些会导致问题,因为它们主要适用于 ℕⁿ 而不是 ℝⁿ。
不能保证我的 ℝ³ 值遵循网格,如果确实如此,我可以映射 ℝ³-> ℕ³,方法是找出 "box" 值所在的位置,然后使用 cantor 的配对函数找出which ℕ 属于那个盒子,但在我的情况下,盒子可能包含多个值,或者 none.
在此先感谢您的帮助