我如何概念化一个超过三维的数组

How can I conceptualize an array with more than three dimensions?

本文关键字:一个 三维 数组 概念化      更新时间:2023-10-16

我刚学过数组,但不能定义三维以上的数组

想象如下:

  • 书行上的字母
  • 图书页行
  • 图书页数
  • 书架上的书
  • 满是书架的房间
  • 满屋子的房间
  • 有许多房子的街道
  • 有街道的城镇
  • 有城镇的国家
  • 一个有国家的星球
  • 一个充满行星的宇宙
  • 最后,一个大的宇宙阵列。

Viola,一个12维数组

想象一系列三维立方体,一个接一个。

你也可以把它想象成一个在离散时间间隔内进化的三维立方体。

我发现如果你想要一个适合通常的空间(加上时间)系统的心理模型,也就是说,你可以在物理世界中立即想象其维度

很少有人能理解第四个空间维度是什么样子的。如果你想试着理解,这里有两个指针:

    维基百科
  • 一个很好的视频教程

多维数组不需要概念化为矩形、立方体等。还有另一种看待它们的方式。二维数组是由大小相等的一维数组组成的一维数组。三维数组是二维数组的一维数组。等。您可以将嵌套数组可视化为全部水平,或全部垂直,或水平和垂直交替-随您喜欢。

如果你说的"概念化"是指"想象",那也可以。我们,作为3D生物,不能真正掌握更高维度的东西(无论如何,我们大多数人)。这与四元数是一样的,它在4D数字空间中工作,或者与图形中的剪切空间一样,它被用来将3D模型带到我们的2D屏幕上,通过四维的迂回。即使大多数程序员并不真正理解这些东西,我们仍然可以很好地使用它。但最重要的是,不要去质疑它是如何运作的。否则你会觉得自己迷失在所有的维度理论中(至少我是这样的)。


现在,就像在评论中说的,4D数组在我看来是非常非常稀疏的。如果你真的需要一个,它不会是一个4维的形状,而是一个3维形状的列表。或者2D数组的2D数组。不要把"维度"当成"空间维度"。想象一下多维数组,比如"在一对方括号[]之后,将会有另一对方括号。"和另一个。以此类推,直到[]的数目和数组的维数相匹配。所以它们更像是一个列表的列表的列表。:)
假设你有一个书架,从远处看你只能看到二维空间。现在,当你靠近你想要的书架(arr[x][y])时,你发现,每个书架上仍然有细分,书架的书架。:)
希望这能澄清一些问题。欢呼。

去查看最近的关系数据库中的一个较大的表。这个表是一个数组,只是按列名而不是明确的数字进行索引;列显然是一个有限集合所以它们可以和非负整数一一对应这个映射给你更熟悉的数组维度