我刚刚了解了数组,但无法概念化超过三维的数组。
答案 0 :(得分:19)
想象一下:
Viola,一个12维阵列。
答案 1 :(得分:3)
想象一系列三维立方体,一个接一个。
您还可以将其视为在不连续的时间间隔内演变的单个3D立方体。
如果你想要一个适合通常的空间(加时间)系统的心智模型,我觉得这些很有帮助,也就是那些你可以在物理世界中同时显示所有尺寸的东西。
答案 2 :(得分:3)
很少有人能够掌握第四个空间维度的样子。 如果你想尝试理解,这里有两个指示:
答案 3 :(得分:1)
多维数组不需要概念化为矩形,立方体等。还有另一种查看它们的方法。二维阵列是大小相等的一维阵列的一维阵列。三维阵列是二维阵列的一维阵列。等等。您可以将嵌套数组可视化为全部水平,或全部垂直,或者交替水平和垂直 - 无论您喜欢什么。
答案 4 :(得分:1)
如果通过“概念化”来表示“想象”,那就没关系了。我们作为3D生物,无法真正掌握更高维度的东西(我们大多数人,无论如何) 它与四元数相同,它在4D数字空间中工作,或者与图形中的剪切空间一起使用,用于将3D模型带到我们的2D屏幕上,绕过第四维度。即使大多数程序员并不真正理解这些东西,我们仍然可以使用它。但最重要的是,不要试图质疑它是如何工作的。否则你会在所有维度理论中感到迷失(至少我这样做)。
现在,就像在评论中所说的那样,4D阵列非常稀疏。如果你真的需要一个,它不会是一个四维形状,而是一个三维形状的列表。或2D阵列的2D阵列。不要将“尺寸”部分视为“空间尺寸”。想想多维数组,比如“在一对方括号[]
之后,会有另一对。而另一个。等等,直到你[]
的数量和维数的维数数组匹配。所以他们更像是...... :)列表的列表
假设你有一个书架,从远处看你只看到2个维度。现在当你靠近你想要的架子(arr[x][y]
)时,你会发现,每个架子上还有一个分区,一个书架的书架。 :)
希望能把事情搞清楚一点。欢呼声。
答案 5 :(得分:0)
查看最近的关系数据库中的一个较大的表。该表是一个恰好由列名而不是显式数字索引的数组;这些列显然是一个有限的集合,因此它们可以与非负整数一一对应,这种映射为您提供更熟悉的数组维度。