【问题标题】:linear simulation of multidimensional array多维数组的线性仿真
【发布时间】:2010-10-15 07:16:32
【问题描述】:

我知道如何使用[x + y * width] 作为线性索引来模拟线性数组中的二维数组。

我可以将其扩展到 3d 数组:[x + y * width + z * width * height]

N维数组有通用公式吗?

我正在寻找与语言无关的答案。

【问题讨论】:

    标签: arrays language-agnostic linear-algebra multidimensional-array


    【解决方案1】:

    当然。只是扩展你的例子给x + y*width + z*width*height + w*width*height*depth + ...

    换句话说,dim1 + dim2*size1 + dim3*size1*size2 + dim4*size1*size2*size3 + ...

    【讨论】:

      【解决方案2】:

      呃,如果你想要一些代码... :-) C 语言与语言无关,是吗?

      假设输入:位置[维度]

      假设存在一个表 maxBound[dimensions],其中包含表的每个维度的最大边界。

      int index = 0;
      int multiplier = 1;
      for (int i = 0;i < dimensions;i++)
      {
        index += location[i] * multiplier;
        multiplier *= maxBound[i];
      }
      

      您的索引将在索引字段中结束。

      Test:
      location = [3,4,5]
      maxBound = [10,20,30]
      loop initial: index = 0, multiplier = 1.
      loop i=0: index = 3, multiplier = 10.
      loop i=1: index = 43, multiplier = 200.
      loop i=2: index = 1043, multipler = 6000.
      

      我认为这是有道理的,但这只是我的想法。

      【讨论】:

        猜你喜欢
        • 2014-03-24
        • 1970-01-01
        • 2021-07-23
        • 1970-01-01
        • 2012-10-20
        • 1970-01-01
        • 1970-01-01
        • 2014-03-17
        • 2020-06-01
        相关资源
        最近更新 更多