超空间包含大量的高维点。
我倾向于将空间划分为多个立方体。
这些立方体组成了一棵B+树。我读过很多关于B+树的书。
但是我不知道如何对立方体进行编号,以及如何选择一个节点可以使用的最大键数
有,那么我可以有效地.visit一个立方体的邻居立方体。
有谁能给点建议吗?
发布于 2012-06-07 12:46:22
通常,通过将任何n维数组转换为一系列(n-1)-dimensional数组,可以将其重新想象为线性序列。
这里有一个简单的例子。假设我们有一个2 x 2的对象数组:
a b
c d具有数组索引的语言鼓励您将其视为嵌套数据结构,如下面的python代码:
a, b, c, d = 'abcd'
data = { 0: { 0 : a, 1 : b }, 1: { 0 : c, 1 : d } }
fetch = lambda x, y: data[y][x]
assert fetch(0, 1) == c但是你也可以把它想象成一个平面数组,如下所示:
data2 = [ a, b, c, d ]
data2_width = 2
fetch2 = lambda x, y : data2[(y * data2_width + x)]
assert fetch2(0, 1) == c一般的想法是用维度的长度乘以得到下一行。
您可以递归地将该想法应用于任意数量的维度。所以如果你的维度是tuvxyz,长度是TUVWXYZ,那么对于任何对象,你只需取其坐标并计算{ (t *T*u*U*v*V*w*W*x*X*y* Y) +z }。
若要沿u维拾取邻居,请从u中添加或减去1,然后再次运行计算。
https://stackoverflow.com/questions/8123491
复制相似问题