4

当 GCC 允许我这样做时,我感到很困惑:

int t[10][10][10][10][10];

我意识到int i[N][N]是一个NxN矩阵,其中第一个N表示行,第二个表示列。此外,第三个N表示int i[N][N][N]深度,为我们提供了一个 3d 维数组。

我不明白什么int i[N][N][N][N]和超越的意思。

第四个维度是时间,但这不适用于这里。

那么,这是否意味着当我到达第三个时,我可以让逻辑消失?

4

6 回答 6

27

我发现一个库类比对于可视化多维数组非常有用:

  • 8维数组是一个库
  • 7维数组是图书馆的一层
  • 6维数组是图书馆地板上的一个房间
  • 5维数组是图书馆楼层房间里的书柜
  • 4维数组是图书馆地板上房间书柜中的架子
  • 3维数组是图书馆地板上房间书架上书架上的一本书
  • 二维数组是书架上书架上书架上书架上书架上书房地板上的一页
  • 一维数组是书架上书架上书架上书架上书架上书架上书架上书架上的一条线
  • 0维数组是书架上书架上书架上书页上一行中的一个字符在图书馆地板上的房间里
于 2012-07-20T16:57:52.680 回答
10

在数学世界中,维数无关紧要。它最终会达到一个无法再想象它的地步。

于 2012-07-20T16:55:04.777 回答
8

尺寸就是您想要制作的任何尺寸。例如,只有在处理这些概念时,深度和时间才有意义。

它不一定是关于空间和时间的。事实上,C++ 标准称它们为extents

假设您有十种不同的奶酪,并且您想评估某人以某种特定顺序偏爱它们的可能性。您可以将其存储在您int t[10][10][10][10][10];的 , 中分别表示:最喜欢的奶酪、第二喜欢的奶酪、第三喜欢的奶酪、第四喜欢的奶酪、第五喜欢的奶酪和最不喜欢的奶酪。某人喜欢按 5-4-6-3-2-1 顺序排列的奶酪的可能性将表示为t[5][4][6][3][2][1]

关键是,该语言没有将域语义附加到范围。这取决于你。

于 2012-07-20T16:59:48.370 回答
3

N 维数组不仅仅是 C++ 的东西。它出现在数学、物理学、其他各种科学等领域。

这是一个示例:假设您想按位置 (x,y,z)、时间和“哪个用户生成数据”来索引数据。对于在 x1、y1、z1、time1 收集并由 user1 生成的数据点,您可以将其保存为dataArray[x1][y1][z1][time1][user1] = myNewData.

于 2012-07-20T16:57:12.833 回答
1

在编程中,不要从传统几何的角度来考虑多维数组,除非您直接尝试表示世界。最好将每个连续的“维度”视为另一个包含数组的数组。有几个用例可能会出现这种情况。但是,如果您使用超过三个维度,我将不再将其视为数组甚至“数组数组”,我更喜欢树,因为它们更接近于您对需要超过 3 层深度的东西进行编程的方式。

一个例子是一棵树,你有一个根节点,它的节点也有节点。如果你想对某样东西进行排序,那么一棵树是一个很棒的工具。假设您想对一堆随机出现的数字进行排序。您将输入根中的第一个数字。如果第一个数字是 5,下一个数字是 7,那么您将把 7 放在根节点 5 的“右侧”。如果您得到一个 3,然后是 4,您将把 3 插入到5 的“左”,然后是 3 的“右”的 4。如果您按顺序遍历这棵树(总是从树的左边向下走,只有在没有新节点时才返回,然后向右走),你最终会得到一个排序列表:3、4、5、7。

       5
    /    \
   3      7
     \
      4

在这里,您可以看到树状结构。如果您在 C 中执行此操作,您将使用结构,它看起来像这样(我使用的是伪代码):

struct Node{
     int val;
     Node left;
     Node right;
}

有很多关于二叉树的材料(我一直在解释),但主要是我希望你摆脱数组“就像空间中的维度”的概念,而不仅仅是可以存储元素的数据结构. 有时二叉树或其他数据结构过于复杂,5 维或更多维数组可能更方便存储数据。我现在想不出一个例子,但它们以前被使用过。

于 2012-07-20T17:16:56.770 回答
0

作为物理 3 维存在,我们无法“可视化”第 4、第 5、第 6(或更高)物理维度所代表的内容。

第四维度会将我们的感知扩展到第四方向,该方向与我们自然感知的高度、宽度和深度方向正交。
是的 - 几何变得很奇怪!

为了让我们对这个想法有一种感觉,在这段视频中, 卡尔萨根想象了一个完美平坦的 2d 生物(一个小正方形),生活在 2d 世界中,遇到一个神秘的 3d 生物会是什么感觉。
这个 3d 生物(怀疑类似于苹果)主要存在于这个小方块无法“看到”的神秘 3d 维度中。它只感知苹果与它的二维平面世界相交的点,即它的投影......

以今天的标准来看,这段视频看起来已经过时了,但就物理/几何而言,它仍然是我见过的最好的解释。

于 2013-07-02T00:20:22.260 回答