问题标签 [hilbert-curve]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 作业调度中的希尔伯特曲线实现
如何在作业调度方面实现希尔伯特曲线算法。
有人可以分享它背后的逻辑吗?
hilbert-curve - 如果希尔伯特曲线四叉树有效,为什么要转换为 S2 单元 ID?
我正在研究地理空间服务并使用希尔伯特曲线将纬度和经度转换为四叉树键。
例如,在 30 级时:(
45.5337699,-122.6988316 converts to 2/221022201033023103222221213221
诺布山)
然后可以将其转换为 S2 小区 ID
6094788552675374000
当与附近的位置进行比较时:(
45.5308839,-122.6815796 >> 2/221022201033330012321301320023
珍珠区)
S2 ID:6094788657473797000
很容易看出,我可以对前缀上的 HB Quatree Key 进行扫描,2/221022201033
然后返回 Nob Hill 和 Pearl District 以及该前缀内的任何其他点。
我不明白为什么有必要进一步将 HB 四叉树密钥转换为 S2Cell ID (这似乎是有多少人正在实施这种地理位置技术)。也可以扫描。在这种情况下,前缀6094788
. 有谁知道为什么要采取这个额外的步骤,以及从准确性的角度来看是否有必要?
algorithm - 找到包含点的最小范围的最有效算法/数据结构是什么?
给定数百万个价格范围的数据集,我们需要找到包含给定价格的最小范围。
以下规则适用:
- 范围可以完全嵌套(即 1-10 和 5-10 有效)
- 范围不能部分嵌套(即 1-10 和5-15无效)
示例:
给定以下价格范围:
- 1-100
- 50-100
- 100-120
- 5-10
- 5-20
搜索价格7的结果应该是5-10
搜索价格100的结果应该是100-120(包含 100 的最小范围)。
实现这个的最有效的算法/数据结构是什么?
在网上搜索,我只找到了在范围内搜索范围的解决方案。
我一直在研究莫顿计数和希尔伯特曲线,但不知道如何在这种情况下使用它们。
谢谢。
rust - 为什么这个从 C (来自维基百科)移植的希尔伯特曲线实现似乎失败了?
我在 Wikipedia 上找到了以下用于绘制希尔伯特曲线的代码:
我将其放入c2rust.com中,并将 rot() 定义为第一个函数,并得到以下代码:
问题是结果似乎没有意义:
我绝对没想到会出现不同 N 的重复坐标。可能出了什么问题?这是用于比较的C测试代码:
以及预期的输出(由 C 生成):
c# - 沿 3 维希尔伯特曲线将点转换为距离?
我正在尝试编写一个函数来计算沿 3 维希尔伯特曲线出现的点的距离。本质上是一个函数,它可以获取一个点的 x、y、z 坐标并计算它出现在曲线上的位置。假设 x、y 和 z 可以是整数 0 - 255,大致对应于 RGB 颜色空间。这样我就可以根据希尔伯特曲线创建一个有序的点列表。
我已经尝试在堆栈溢出上实现这里给出的代码,但是当我尝试用 C# 编写它时,这让我陷入了递归循环,而且这并不是我所追求的。我也尝试过实现此代码,但是,我必须误解它,因为它给了我似乎完全随机的结果。
目前,我正在关注本指南,并且已经完成了关于灰码的部分的编码。但是,当涉及旋转的示例计算时,我被卡住了。在表格中,我不确定最终数字是如何在 chnk、rotation 和 Flipbit 之间产生的。
我是一名计算机科学专业的学生,数学背景并不多。
下面是我到目前为止的代码示例
indexing - 使用空间填充曲线的空间和时空索引
我想在给定空间信息或时空信息的情况下找到点 q 的最近邻居。为此,我想使用基于 Z 阶曲线或希尔伯特曲线的键创建 B 树索引。然而,我发现希尔伯特曲线比 Z 阶更难实现。我的问题是:
在最近邻查询中是否值得在 Z 阶曲线上使用希尔伯特曲线?
python - 如何按希尔伯特曲线的顺序将二维矩阵(nxn)展平为一维数组?
我想将 python 中的 2d (nxn) 矩阵展平为 1d 数组,但不是行主要顺序,而是希望它遵循希尔伯特曲线的顺序?
例如,如果我的输入数据是 2x2 -->
我希望输出为 1x4 -->
但我想用尺寸为 256 x 256 的图像来做到这一点
另一个例子是给定数据
我希望输出是
在 python 中执行此操作的最佳方法是什么?