You need to enable JavaScript to run this app. 斜向矩阵编号下已知元素值定位所在行列的求解方法
优惠活动
大模型
产品
解决方案
定价
更多

斜向矩阵编号下已知元素值定位所在行列的求解方法

斜向排布矩阵的坐标推导方法

排布规则说明

本类矩阵沿反对角线连续填充正整数,逐圈向外扩展,核心规则为:

  • 行号r、列号c均从1开始计数,每个反对角线斜带满足固定值 s = r + c,同个斜带的元素数值连续排列
  • 斜带s上共有s-1个元素,填充方向固定为从左边界点(s-1, 1)出发,沿r递减、c递增的方向,一直延伸到上边界点(1, s-1)
  • 最小的斜带s=2仅包含元素1,对应坐标(1,1)

已知元素值x求对应(r,c)的计算步骤

  1. 定位元素所属的斜带s
    • 斜带s之前累计的元素总数(即斜带s-1的最后一个元素值)为 prev_total = (s-1)*(s-2)/2
    • 求解满足不等式 (s-1)*(s-2)/2 < x <= s*(s-1)/2 的最小整数s,可通过公式直接计算:
      s = ceil( (1 + sqrt(8*x + 1)) / 2 )
      
  2. 计算元素在当前斜带内的偏移量d
    • 从斜带起点开始的偏移位置为 d = x - prev_total,即当前元素是斜带s上的第d个元素
  3. 代入斜带坐标公式计算r、c
    • 结合斜带的固定填充方向,可得:
      r = s - d
      c = d
      

验证示例

  • x=6:计算得s=4,prev_total=3,d=3,r=4-3=1,c=3,对应(1,3)=6,与排布规则一致
  • x=10:计算得s=5,prev_total=6,d=4,r=5-4=1,c=4,对应(1,4)=10,与排布规则一致
  • x=12:计算得s=6,prev_total=10,d=2,r=6-2=4,c=2,对应(4,2)=12,与排布规则一致

注意:上述计算默认使用1起始的行列编号,若需转换为编程常用的0起始坐标,将得到的r、c分别减1即可。计算时需注意浮点数精度误差,开平方后建议做整数边界校验,避免因精度不足导致s值计算偏差。

内容的提问来源于stack exchange,提问作者Oleg Chaika

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.02 08:36:05