Я ищу алгоритм, который способен отображать конечные, но большое количество трехмерных позиций (около 10^11) на индексы (поэтому отображение ³³ -> ℕ)ℝ³ -> ℕ отображение для конечного числа значений
Я знаю, что это возможно и довольно просто сделать отображение ℕ -> ³³, и это по сути то, что я хочу сделать, но ℕ -> ³³ было бы непрактичным способом выяснить, какие индексы ℕ близки определенная позиция,
В идеале я также хотел бы гарантировать, что мое конечное подмножество ℕ не содержит дубликатов.
Некоторых советов о том, как это будет реализовано, чтобы дать более полное представление о трудностях и проблемах, с некоторым наивным решением этой проблемы:
Я пытаюсь придумать способ отображения звезд в галактике уникальный идентификатор, который затем я могу использовать в качестве «семени» для генератора случайных чисел, отображение ℕ -> ³³ потребовало бы, чтобы я перебирал все ℕ, чтобы найти значения ℝ³, которые находятся вблизи данного места, что, очевидно, не практический подход
Я уже нашел некоторую информацию о функции спаривания канторов и огибающей, но это вызывает проблемы, поскольку они в основном относятся к ℕⁿ, а не ℝⁿ.
Не забудьте, что мои значения ℝ³ соответствуют сетке, если бы они могли отображать ³³-> ³³, выяснив, в каком «поле» находится значение, а затем используйте функцию спаривания кантора, чтобы выяснить, к какому ℕ принадлежит в этом поле, но в моих ситуациях ящик может содержать несколько значений или ни один.
Заранее спасибо за любую помощь
Я изначально допрашивал это, полагая, что для этого может потребоваться очень большой объем данных, однако после некоторого рассмотрения я пришел к выводу, что он действительно будет работать очень хорошо: я мог бы использовать 64 бит для хранения индекса, а для 3d-дерева мне понадобится 3 бита (8 значений от 000 до 111) на каждое подразделение , предполагая, что галактика, как и молочный путь (~ 100 000 световых лет), даст мне «коробку», около 0,05 * 0,05 * 0,01 световых лет на уникальный индекс, а любые две звезды менее 1 световых лет уже должны рассматриваться как двоичная звездная система –