希尔伯特曲线Hilbert curve
一条不重复的路径走遍 2ⁿ × 2ⁿ 网格的每一格;取极限后,它经过正方形里的每一个点。
调节参数
导出
公式与关键数值
- 构造规则
按 U 形依次经过正方形的四个四分之一;在每个四分之一里,把整个图案缩小一半重复一遍,并旋转到首尾相接。
- 弧长图中 ≈ 31.97
- 经过的格子数图中 = 1024
- 极限的维数
n 是阶数;曲线位于单位正方形内。
01 · 定义
什么是希尔伯特曲线?
把正方形分成四块,用一条 U 形路径连起四块的中心。再把每一块换成整个图案缩小后的副本,并旋转到首尾相接。David Hilbert 在 1891 年发表了这个构造,比 Peano 证明"曲线可以填满正方形"晚一年。
n 阶路径恰好经过网格的全部 4ⁿ 个格子一次。n 增大时,这些曲线收敛到一个把线段连续地映满整个正方形的映射。它在实际中的好处是"局部性":在曲线上相邻的点,在正方形里也相邻,所以被用来给像素、地图瓦片和数据库键排序。
02 · 性质
关键性质
- n 阶曲线经过 4ⁿ 个格子,每格恰好一次。
- 在单位正方形里,n 阶路径长 2ⁿ − 2⁻ⁿ。
- 极限是从 [0, 1] 到正方形的连续满射:一条填满空间的曲线。
- 它的像的维数是 2,就是被填满的正方形的维数。
- 曲线上相近的位置落在相近的格子里,因此适合给二维数据做一维索引。
03 · 问答
关于希尔伯特曲线的常见问题
- 希尔伯特曲线是怎么构造的?
- 构造规则:按 U 形依次经过正方形的四个四分之一;在每个四分之一里,把整个图案缩小一半重复一遍,并旋转到首尾相接。。n 是阶数;曲线位于单位正方形内。
- 希尔伯特曲线的弧长是多少?
- 弧长:L_n = 2^n - 2^(-n)。n 是阶数;曲线位于单位正方形内。
04 · 继续探索