You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何推导关联X、Y与gridSize的菱形网格Grid3索引公式?

菱形网格索引公式推导

现有两个5×5菱形网格(gridSize=5),分别对应Y值(Grid1)和X值(Grid2),需要推导关联X、Y和gridSize的公式,得到目标网格Grid3的连续索引值。

已知网格数据

Grid1(对应Y值)

0
   1 1
  2 2 2
 3 3 3 3
4 4 4 4 4
 5 5 5 5
  6 6 6
   7 7
    8

Grid2(对应X值)

0
   0 1
  0 1 2
 0 1 2 3
0 1 2 3 4
 0 1 2 3
  0 1 2
   0 1
    0 

目标Grid3(索引值)

00
      01  02
    03  04  05
  06  07  08  09
10  11  12  13  14
  15  16  17  18 
    19  20  21
     22   23
        24

公式推导

首先明确几个基础规律:

  • 菱形网格的总行数为 2*gridSize - 1(如gridSize=5时共9行)
  • 每行的元素数量:当Y < gridSize时,元素数为Y+1;当Y >= gridSize时,元素数为2*gridSize - Y -1
  • 总索引范围为0 ~ gridSize² -1(如gridSize=5时共25个索引,0到24)

分情况计算索引

根据Y值所在的区域,分两种情况推导公式:

情况1:0 ≤ Y < gridSize(上半部分含中间行)

此区域内,第Y行的起始索引为前Y行所有元素的总和(前0行总和为0,前1行总和为1,以此类推),公式为:

起始索引 = Y * (Y + 1) / 2

最终索引为起始索引加上当前行的X值:

Grid3索引 = Y*(Y+1)/2 + X

验证(gridSize=5):

  • Y=0,X=0:0*(0+1)/2 +0=0,符合Grid3的00
  • Y=4,X=3:4*(4+1)/2 +3=10+3=13,符合Grid3的13

情况2:gridSize ≤ Y ≤ 2*gridSize -2(下半部分)

先计算offset = Y - gridSize(表示Y距离中间行下方的偏移量),前gridSize行(上半部分含中间行)的总元素数为gridSize*(gridSize+1)/2,再加上偏移区域内的元素总和,得到当前行的起始索引:

起始索引 = [gridSize*(gridSize+1) + offset*(2*gridSize -1 - offset)] / 2

最终索引为起始索引加上当前行的X值:

Grid3索引 = [gridSize*(gridSize+1) + offset*(2*gridSize -1 - offset)]/2 + X

其中offset = Y - gridSize

验证(gridSize=5):

  • Y=5,offset=0,X=2:[5*6 +0*(10-1-0)]/2 +2=15+2=17,符合Grid3的17
  • Y=7,offset=2,X=1:[5*6 +2*(10-1-2)]/2 +1=(30+14)/2 +1=22+1=23,符合Grid3的23

内容的提问来源于stack exchange,提问作者Kavin-K

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 11:05:17