【问题标题】:What does double[,,] represent?double[,,] 代表什么?
【发布时间】:2013-10-23 06:33:15
【问题描述】:

在回答 a question about double[,] 时,我添加了 LINQPad 为该数据结构输出的屏幕截图:

但是,我想知道double[,,] 是什么样子的,LINQPad 无法为我可视化它。此外,我不明白其中的数据格式:

   int[,,] foo = new int[,,]
   { 
     { 
        { 2, 3}, 
        { 3, 4}
     },
     { 
        { 3, 4},
        { 1, 5} 
     }
   };

谁能帮我想象一下?

【问题讨论】:

  • 我认为最直接的可视化方式是使用 3D 立方体。不知道有没有人想推荐一个复杂的二维模型...?
  • @Katana314,请参阅stackoverflow.com/a/18304657/129164,了解我认为在技术上将被视为 1D 模型。

标签: c#


【解决方案1】:

您可以认为这是一组堆叠在一起的桌子。因此,您需要指定一个三元组来检索项目,这将指定从哪个表、列和行获取值。

这是一个 3x3x3 数组的可视化形式:

【讨论】:

  • 每个盒子都包含一个输入数字? 编辑:根据@Servy 对他的回答的评论,我知道我的问题的答案是“是”。
  • 正确。每个框都是一个数组位置,然后将保存一个值(如果您使用示例,则为双精度值)。
  • 请同时可视化double[,,,,,,] ;-)
  • @JeppeStigNielsen:double[,,,] 可以看作是 PocketDews 为我们绘制的一组 3D 表格。 double[,,,,] 可以可视化为这些组中的一组。 double[,,,,,] 可以看作是一组 那些 组(可能组织为由 PocketDew 的立方体组成的立方体)。 double[,,,,,,] 可以被可视化为一组 那些 组 - 等等,无限期地。
  • 没有什么比 7 维结构更容易可视化的了!
【解决方案2】:

这是Rectangular Cuboid

它是一个有 6 个面的三维实体,都是矩形。

您可以进一步想象长方体被分解为多个立方体,每个立方体都有一个值。

【讨论】:

  • 那么{2, 3} 对在哪里(例如)?一对相邻的立方体?两个角之间的线?
  • @Bobson 在您的示例中,您有 8 个不同的值,即 2x2x2 立方体。 { 2, 3}, { 3, 4} 代表立方体的下半部分,{ 2, 3} 代表相邻的立方体(占整个立方体的 1/4)。
  • 啊,现在说得通了。
【解决方案3】:

这是一个 3D 数组。所以你必须做一个 3D 表示来可视化它。

您可以考虑用多个乐高积木创建一个立方体(或更准确地说是矩形长方体),其中每个积木包含 1 个整数。

【讨论】:

  • 它不是一个立方体,因为维度不需要都相等。这是一个长方体。
  • 是的,但如果每个人都知道长方体是什么,我现在不知道。
  • 如果你可以用另一个词来表示你的意思,那么无论如何,但是说它是一个立方体是不正确的。
  • 实际上,如果将数组值表示为长方体而不是立方体,即使数组的尺寸不相等,也可以将它们压扁以适应立方体形状的容器。只是说':P
  • @JonathanGraef 只需改变乐高积木的大小:D
【解决方案4】:

正如其他人所说,它是 3D 数组(2D 数组的数组)。您可以使用this extension 进行可视化。

【讨论】:

  • 哇哦,玩起来很有趣。
【解决方案5】:

这将是一个长方体(3 维数组)- 随心所欲地深入(维度方面),但是在第 3 维之后可视化变得非常困难。

你可以把它想象成一堆给定类型的桌子;这个类比递归地起作用。

【讨论】:

    【解决方案6】:

    也很可能以“枢轴”格式表示一个 n 维数组,例如:

    对于二维以上的数组,这是一种更容易生成和读取的格式。

    【讨论】:

    • 不错的一个。我希望 LINQPad 以这种方式打印出来。
    【解决方案7】:

    多维数组看起来像一个有 6 面的立方体,并具有 3 个属性宽度、高度和深度,当您确定深度时,当 2d 数组的深度大于 1 时,您将 2 维数组的页面置于真实位置,我们创建 3d 数组。看看这个Article 深入了解这个概念。以及这篇文章供Programming使用

    【讨论】:

      猜你喜欢
      • 2010-11-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-16
      • 1970-01-01
      • 1970-01-01
      • 2013-01-07
      • 1970-01-01
      相关资源
      最近更新 更多